/*******************************************************************************
* Copyright (c) 2006, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*********************************************************************************/

// This file was generated by LPG

package org.eclipse.cdt.internal.core.dom.lrparser.cpp;

public class CPPNoFunctionDeclaratorParserprs implements lpg.lpgjavaruntime.ParseTable, CPPNoFunctionDeclaratorParsersym {

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static short baseCheck[] = {0,
            0,0,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,3,1,1,1,1,1,1,
            1,1,2,2,1,1,0,1,0,4,
            2,3,2,3,2,2,1,0,1,1,
            4,4,4,8,8,3,3,4,4,3,
            3,2,2,7,7,7,7,4,4,5,
            6,3,2,2,1,1,1,2,2,2,
            2,2,2,2,2,2,4,7,9,3,
            0,1,2,2,1,2,3,4,1,0,
            3,1,0,3,5,1,4,1,3,3,
            1,3,3,3,1,3,3,1,3,3,
            1,3,3,3,3,1,3,3,1,3,
            1,3,1,3,1,3,1,3,1,5,
            1,3,5,3,3,1,3,3,1,3,
            1,3,1,3,1,3,1,3,1,5,
            1,1,3,3,3,3,3,3,3,3,
            3,3,3,1,2,1,1,3,3,3,
            3,3,3,3,3,3,3,3,1,2,
            1,3,1,0,1,0,1,1,0,1,
            1,1,1,1,1,1,1,1,3,4,
            3,2,1,4,2,1,2,5,7,5,
            1,4,1,0,5,7,2,8,1,1,
            2,2,3,2,3,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,2,1,0,4,4,2,2,2,2,
            2,1,0,1,1,1,1,1,1,2,
            1,2,2,2,1,1,2,2,1,2,
            2,1,2,2,1,2,2,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,3,
            4,4,5,2,5,6,5,0,1,0,
            7,8,0,1,3,1,0,1,3,1,
            7,6,0,7,6,1,0,6,5,6,
            4,1,3,1,0,1,2,1,1,3,
            1,3,1,1,1,3,9,2,2,3,
            2,5,3,7,0,1,2,2,1,0,
            1,1,1,3,1,2,1,1,2,3,
            1,1,1,3,2,1,2,2,9,8,
            2,1,3,1,3,1,0,1,0,2,
            1,1,3,1,3,2,1,5,8,1,
            2,3,1,1,7,6,3,0,0,1,
            3,1,1,5,6,6,7,7,0,0,
            1,0,1,1,1,2,4,2,2,1,
            5,1,1,1,1,1,1,1,2,1,
            0,1,3,1,1,2,3,2,1,2,
            2,1,0,1,3,3,5,5,4,1,
            1,1,1,0,1,5,2,2,1,2,
            2,1,0,1,3,4,3,1,1,5,
            2,1,1,3,3,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,2,2,7,1,0,1,3,1,1,
            2,4,2,4,7,9,5,1,3,1,
            0,1,1,3,2,3,2,2,1,0,
            1,1,4,5,2,1,2,2,2,2,
            2,2,2,1,1,2,1,1,2,4,
            4,2,1,2,5,5,3,3,1,4,
            3,1,0,1,3,1,1,1,-110,0,
            0,0,0,-2,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-7,-13,0,-8,0,
            0,0,0,0,0,-11,0,-19,0,0,
            -10,0,0,0,0,-14,-448,0,0,0,
            0,-280,0,0,-5,0,0,0,0,0,
            0,0,0,0,0,0,0,-93,-27,0,
            0,0,-245,0,0,0,0,-487,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-28,
            -88,0,0,0,0,0,-29,0,0,0,
            0,0,-30,-106,-271,0,0,0,0,0,
            -112,0,0,-33,0,0,-34,0,0,0,
            -343,0,0,0,0,0,0,0,0,-533,
            0,0,0,0,-440,0,0,0,0,0,
            0,0,0,0,0,0,0,-199,0,0,
            0,0,0,-76,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-25,0,-449,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-41,0,-35,
            0,0,0,-325,0,0,0,0,0,-3,
            0,0,0,-98,0,0,0,0,0,0,
            0,0,0,-77,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-6,0,0,0,0,0,0,
            0,0,0,0,-20,-237,0,0,0,0,
            0,0,-15,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-94,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-169,0,0,0,0,-21,-486,
            0,0,0,0,-92,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-318,0,-118,-263,0,0,0,0,
            0,0,0,0,-328,0,0,0,-346,0,
            -23,0,0,0,0,0,-40,0,-42,0,
            -90,0,0,0,0,0,0,0,0,0,
            -182,0,0,0,0,-194,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-521,0,0,
            0,0,-203,0,0,0,0,0,0,-46,
            0,0,0,0,-327,0,0,-319,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-315,0,0,0,-17,
            0,0,0,0,-43,0,0,0,0,0,
            0,0,0,0,0,0,0,-261,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-44,-600,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-274,0,0,0,0,0,0,0,0,
            0,0,0,-331,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -189,0,0,-26,0,0,0,0,0,0,
            -37,0,0,0,0,0,-352,0,0,0,
            -22,-31,0,0,-152,0,0,0,-473,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-39,-32,0,0,0,0,-16,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -290,0,0,0,0,0,0,-172,0,0,
            0,0,0,-395,0,-51,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-38,0,0,0,0,-45,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-47,
            0,0,0,0,0,0,0,0,-59,0,
            -60,0,0,-272,0,0,0,0,-122,0,
            0,0,0,-83,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-382,0,0,0,
            0,-61,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-537,0,0,0,0,-512,0,
            0,0,0,-313,0,-91,0,0,-279,0,
            0,0,0,-366,-424,0,0,0,0,-62,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-85,0,0,0,0,-73,0,0,0,
            0,-81,0,0,0,0,-505,0,0,0,
            0,-425,0,0,0,0,-264,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-230,
            0,-63,0,0,0,0,0,0,0,0,
            0,0,0,-329,0,0,0,0,0,-64,
            0,-36,0,0,0,0,-65,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-577,0,0,0,0,0,0,
            0,0,0,-70,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -379,-411,0,-74,0,0,0,0,0,0,
            0,0,-75,0,0,0,0,-173,0,0,
            -344,0,0,0,0,0,0,-229,0,-139,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-357,0,0,0,
            0,0,0,0,0,0,0,0,-66,0,
            0,-508,0,0,0,0,-140,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-99,0,
            0,0,0,0,0,0,0,0,-541,0,
            0,0,0,-141,0,0,0,0,-370,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-67,0,-68,0,-154,0,0,0,0,
            0,0,-69,0,0,-542,0,0,0,0,
            -142,0,0,0,0,-417,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -71,0,-170,0,0,0,0,0,0,0,
            0,0,-349,0,0,0,0,-143,0,0,
            0,0,-195,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-420,0,0,-96,0,-466,
            0,0,0,0,0,0,-97,0,0,-350,
            0,0,0,0,-144,0,0,0,0,-115,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-174,0,0,0,0,0,0,0,
            0,0,0,-153,0,0,-368,0,0,0,
            0,-145,0,0,0,0,-576,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-269,-95,
            0,0,0,0,0,0,0,0,-268,0,
            -155,0,0,-389,0,0,0,0,-146,0,
            0,0,0,-159,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-160,0,-161,0,
            0,0,0,0,0,-162,0,-163,0,0,
            -398,0,0,0,0,-147,0,0,0,0,
            -164,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-165,0,-166,0,-455,0,0,
            0,0,-167,0,-360,0,0,0,0,-107,
            -108,0,-148,0,0,0,0,-548,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-430,0,-284,0,0,0,0,0,
            0,0,0,0,-356,-367,-183,-273,0,-149,
            0,0,0,0,-168,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-177,0,-265,
            0,-391,0,0,0,0,0,0,-297,0,
            0,-474,0,0,-184,0,-181,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-178,0,-289,0,
            0,0,0,0,0,-179,0,0,0,0,
            -414,-185,0,-248,0,0,0,0,-186,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-570,0,0,0,0,0,0,
            0,0,0,0,0,0,-79,-113,0,0,
            0,-187,0,-286,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-249,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-201,0,0,0,
            0,0,0,-399,0,0,0,0,0,0,
            0,0,0,0,0,-311,0,0,0,0,
            -447,0,0,0,0,0,0,-415,-476,0,
            0,0,0,0,0,-250,0,0,0,0,
            -406,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-190,0,-116,0,0,0,0,
            0,0,0,0,0,0,0,0,-231,-209,
            0,-454,0,-188,-294,0,0,-321,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-251,0,0,0,0,-204,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-196,0,
            0,-117,0,0,0,0,0,0,0,0,
            0,0,0,0,-80,-418,0,-197,0,0,
            0,0,0,0,0,-322,0,-504,0,0,
            0,0,0,0,0,0,0,-252,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-205,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -82,0,0,0,0,0,0,0,-538,-446,
            0,0,0,0,-434,0,-198,-330,0,0,
            0,0,0,-253,0,0,0,0,-208,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-207,0,0,0,0,0,0,
            0,0,0,0,0,0,-84,-355,0,0,
            0,0,0,0,0,-210,0,0,0,-351,
            -517,0,0,-211,0,0,0,0,0,-254,
            0,0,0,0,-282,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-212,0,0,-445,
            0,0,0,-457,0,0,0,0,0,0,
            0,0,0,0,0,-213,0,0,0,0,
            -86,-214,0,0,0,-482,-423,0,-592,0,
            0,0,0,0,0,-255,0,0,0,0,
            -460,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-477,0,0,0,-463,0,-296,
            0,0,0,0,0,-489,0,0,-232,-9,
            0,-470,0,0,0,0,-233,-215,0,-408,
            0,0,0,0,0,-435,0,0,0,0,
            0,-256,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-323,-544,0,-216,0,
            0,-4,-291,0,-217,0,0,0,0,0,
            0,0,-234,-373,0,0,0,0,0,0,
            -593,-218,0,0,0,0,0,-257,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-324,0,0,-338,0,0,
            -326,0,0,0,-361,0,-219,0,-364,0,
            -235,0,0,0,0,-347,0,-394,-401,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-258,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-345,-442,0,0,-220,-221,0,
            -222,0,-293,0,0,0,-459,-223,0,-365,
            0,0,0,0,0,0,0,0,0,-224,
            0,-225,0,0,0,0,0,0,0,-295,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-381,0,0,0,
            0,0,0,0,0,0,-226,0,-227,0,
            0,-171,0,0,0,0,-354,0,0,0,
            0,-353,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-228,-443,
            0,0,0,0,0,0,-238,-375,-266,-390,
            -400,0,-403,0,0,0,-433,0,-405,0,
            -484,0,-275,0,0,0,0,0,0,0,
            0,0,-595,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-413,
            -540,0,-276,0,0,0,0,0,0,-428,
            0,-462,0,0,0,-590,-376,-377,0,-409,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-277,0,
            0,0,0,0,0,0,-278,0,-300,0,
            0,-419,0,0,0,0,-301,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-545,0,
            0,-302,0,-437,0,0,0,0,0,0,
            -458,0,0,-303,0,0,0,0,0,-304,
            -475,-305,-306,-180,0,0,0,-432,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-307,0,0,-308,0,0,
            0,0,0,0,-309,0,0,0,0,-450,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-579,0,0,-310,
            0,-488,0,0,0,0,0,0,-485,0,
            0,-491,0,-492,0,-109,0,-314,-316,-317,
            0,-176,0,0,0,-451,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-336,-337,0,-499,0,0,
            0,0,0,0,-339,0,0,-524,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-378,-341,-348,0,-380,
            0,0,0,0,0,0,-495,0,0,-358,
            0,-359,-502,0,0,0,0,0,-363,0,
            -515,-371,-526,0,-372,0,0,0,0,-158,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-507,0,
            -416,0,-562,0,0,-535,0,0,-563,-536,
            0,-374,-383,0,0,-388,-151,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-421,0,-260,0,0,0,0,
            -546,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-387,0,-342,-431,-573,0,-582,0,
            0,0,-384,0,-392,-396,-567,-397,-410,0,
            0,0,0,-412,-429,-438,-441,-453,0,0,
            0,0,-468,0,0,-422,0,0,-138,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-369,0,0,0,
            -469,0,0,0,0,-247,0,0,0,0,
            -461,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-471,0,-472,0,-478,-480,0,
            0,-493,-500,-501,-511,-523,-525,-527,-528,-559,
            0,-560,0,-529,0,0,0,-530,0,0,
            0,-136,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-532,
            0,-547,0,-549,0,0,0,-137,0,0,
            0,0,-550,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-552,-557,-565,-586,0,-481,
            0,0,-246,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -561,0,-566,0,0,0,0,-574,-598,-584,
            -603,-591,-596,0,0,0,0,0,-494,0,
            -133,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-539,0,-242,0,0,0,0,-564,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -569,0,-134,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-135,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-18,0,0,0,0,-243,0,0,0,
            0,-571,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-575,0,0,-244,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-127,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-128,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -129,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-130,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-239,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-240,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-241,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-299,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-467,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-580,
            -24,0,0,0,0,0,-554,-534,0,-581,
            -119,0,0,0,0,0,-340,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -599,0,0,0,0,0,0,-320,0,0,
            -202,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-506,0,0,0,0,0,
            0,-597,0,-602,0,0,0,0,0,-556,
            0,0,0,0,0,-12,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -150,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-131,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-132,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-362,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-385,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-72,0,
            0,0,-193,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-48,
            0,0,0,0,0,-281,0,0,0,0,
            0,0,0,-259,0,-497,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-503,
            -332,0,0,0,0,0,0,0,0,0,
            -157,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-543,-522,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-49,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-123,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-531,-89,0,
            0,0,0,0,0,-200,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-87,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-551,
            -333,0,0,0,0,0,-334,0,-78,-192,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-553,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -206,0,0,0,-267,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-568,0,0,0,0,0,0,
            -335,0,-386,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-270,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-583,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-404,0,0,0,0,0,
            0,0,0,0,0,-393,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-585,0,0,
            0,0,0,0,-588,0,0,0,0,0,
            -452,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-456,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-589,
            0,-101,-100,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-105,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-594,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -124,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-479,0,0,
            0,0,0,-483,0,0,0,0,0,0,
            0,-601,0,0,0,0,0,0,0,-496,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-604,0,0,0,0,0,0,
            0,-509,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-175,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-125,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-126,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-156,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-427,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-587,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-285,0,0,0,0,0,0,
            0,-1,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-102,0,
            0,0,0,0,-283,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -103,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-510,0,0,0,0,0,0,0,-516,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-114,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-52,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-53,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -54,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-55,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-56,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-57,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-58,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-111,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-120,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-121,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-191,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-287,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -50,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-514,0,0,0,0,0,0,0,
            0,0,0,0,0,-436,-292,0,0,0,
            0,0,0,-298,0,0,0,0,0,0,
            0,0,0,0,0,-465,-312,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-104,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-513,0,0,0,
            0,0,0,0,0,0,0,0,-444,0,
            0,0,-288,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-402,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -407,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-519,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-439,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-464,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-490,0,0,-520,-518,
            0,0,0,0,0,0,0,0,-498,0,
            -236,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-426,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-262,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-572,0,0,0,0,
            0,0,0,-555,0,0,0,0,0,0,
            0,0,0,0,-558,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-578,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0
        };
    };
    public final static short baseCheck[] = BaseCheck.baseCheck;
    @Override
    public final int baseCheck(int index) { return baseCheck[index]; }
    public final static short rhs[] = baseCheck;
    @Override
    public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            191,5,153,93,93,30,30,80,80,39,
            39,42,42,218,1,1,16,16,16,16,
            16,16,16,17,17,17,15,11,11,6,
            6,6,6,6,6,2,76,76,4,4,
            12,12,44,44,154,154,155,69,69,43,
            18,18,18,18,18,18,18,18,18,18,
            18,18,18,18,18,18,18,18,18,18,
            156,156,156,133,133,19,19,19,19,19,
            19,19,19,19,19,19,19,19,20,20,
            192,192,193,193,194,159,159,160,160,157,
            157,161,158,158,21,21,22,22,23,23,
            23,24,24,24,24,25,25,25,26,26,
            26,31,31,31,31,31,33,33,33,34,
            34,35,35,36,36,38,38,40,40,41,
            41,45,45,45,45,45,47,47,47,53,
            53,55,55,61,61,62,62,63,63,64,
            64,65,65,65,65,65,65,65,65,65,
            65,65,65,65,29,29,46,46,46,46,
            46,46,46,46,46,46,46,46,46,37,
            28,162,162,104,104,195,195,103,219,219,
            81,81,81,81,81,81,81,81,81,82,
            82,82,78,78,66,66,196,196,83,83,
            83,115,115,197,197,84,84,84,84,198,
            198,85,85,85,85,85,86,86,94,94,
            94,94,94,94,94,94,56,56,56,56,
            56,134,134,132,132,57,199,27,27,27,
            27,27,50,50,71,71,71,71,71,139,
            139,135,135,135,135,135,136,136,136,137,
            137,137,138,138,138,164,164,164,72,72,
            72,72,72,73,73,73,13,14,14,14,
            14,14,14,14,14,14,14,14,105,140,
            140,140,140,140,140,110,110,110,165,166,
            166,111,111,200,168,168,167,167,141,141,
            116,91,91,142,59,49,169,169,60,58,
            96,96,170,170,163,163,118,118,119,88,
            88,171,171,74,74,67,67,172,75,75,
            79,79,70,70,70,54,97,97,107,106,
            106,51,51,68,68,77,77,52,108,108,
            108,98,98,98,99,99,100,100,100,101,
            101,120,120,120,122,122,121,121,220,220,
            102,102,202,202,202,202,202,144,48,48,
            174,201,201,145,145,146,146,146,147,176,
            203,203,32,32,109,113,113,113,113,205,
            124,123,123,112,112,112,177,178,178,178,
            178,178,178,178,178,178,178,178,207,207,
            204,204,206,206,179,180,180,180,180,181,
            208,126,125,125,209,209,182,182,182,182,
            114,114,114,210,210,8,8,9,211,211,
            212,183,173,173,184,184,185,186,186,7,
            7,10,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,89,92,92,187,187,149,
            149,150,150,150,150,150,150,3,151,151,
            148,148,188,221,222,222,223,223,224,225,
            225,189,190,190,190,190,214,214,214,128,
            128,128,128,128,129,130,130,127,127,95,
            90,87,87,175,175,131,131,215,215,215,
            152,152,143,143,216,216,191,191,117,1119,
            35,2497,2418,4666,1254,27,30,31,629,626,
            26,28,2399,296,25,23,50,1329,106,76,
            77,108,1331,1420,1372,1510,1238,1342,177,1405,
            1492,308,1649,1517,1734,1732,1754,1743,1248,1781,
            176,71,713,707,34,191,1513,1229,35,488,
            266,5158,71,35,3286,1243,35,636,32,4256,
            2742,27,30,31,629,626,373,28,2405,1648,
            269,264,265,3298,35,636,32,4575,2916,27,
            30,31,629,626,26,28,1320,296,25,23,
            50,1329,106,76,77,108,1331,1420,1372,1967,
            1911,1229,35,314,309,5263,358,2199,276,279,
            282,1344,1452,1336,1638,2465,35,312,1944,1292,
            1976,402,646,355,61,359,1969,2629,3153,349,
            627,2568,35,312,2217,2415,2481,2547,4680,285,
            71,3590,193,875,3154,1532,35,636,32,4256,
            4163,27,30,31,629,626,373,28,1229,35,
            314,1837,5414,2621,2267,35,636,32,4575,5370,
            27,30,31,629,626,26,28,1320,296,25,
            23,50,1329,106,76,77,108,1331,1420,1372,
            1967,1504,1452,162,1468,35,3494,32,4256,2742,
            27,30,31,629,626,373,28,1934,55,1944,
            2391,1976,3349,355,2465,35,315,1969,2334,1991,
            329,390,42,2166,2252,1978,2014,2016,161,577,
            592,481,3578,3579,2267,35,636,32,4575,5370,
            27,30,31,629,626,26,28,1320,296,25,
            23,50,1329,106,76,77,108,1331,1420,1372,
            1967,646,355,162,1332,35,636,32,349,627,
            41,30,31,629,626,1377,1229,35,565,1944,
            5904,1976,1582,69,652,533,900,1969,1292,1991,
            1887,548,574,4491,578,1978,2014,2016,161,577,
            1968,35,636,32,417,356,40,30,31,629,
            626,1181,1931,4221,1622,2023,2805,351,3862,69,
            71,35,727,423,764,2267,35,636,32,4575,
            5370,27,30,31,629,626,26,28,1320,296,
            25,23,50,1329,106,76,77,108,1331,1420,
            1372,1967,466,1355,162,1638,71,35,2426,2358,
            1292,548,574,4491,578,71,35,317,638,2463,
            1944,1614,1976,453,454,3489,4729,1389,1969,2922,
            1991,1452,2085,193,367,2023,1978,2014,2016,161,
            577,2537,35,636,32,4575,2176,27,30,31,
            629,626,26,28,1320,296,25,23,50,1329,
            106,76,77,108,1331,1420,1372,1510,1613,1689,
            177,347,1492,69,1649,1517,1734,1732,1292,1743,
            147,1781,176,1213,5062,2431,3352,413,2290,35,
            636,32,4256,4400,27,30,31,629,626,373,
            28,2743,548,574,4491,578,2152,35,330,2509,
            1360,35,636,32,4429,2923,27,30,31,629,
            626,373,28,2157,495,387,2023,438,2597,35,
            636,32,4575,5370,27,30,31,629,626,26,
            28,1320,296,25,23,50,1329,106,76,77,
            108,1331,1420,1372,1967,3349,355,162,2981,1879,
            35,636,32,5897,638,27,30,31,629,626,
            26,28,2025,1944,546,1976,2112,646,355,3485,
            367,1969,1993,1991,350,627,420,414,977,1978,
            2014,2016,161,577,2335,35,636,32,4575,583,
            27,30,31,629,626,26,28,1320,296,25,
            23,50,1329,106,76,77,108,1331,1420,1372,
            1510,2438,1637,177,1377,1492,324,1649,1517,1734,
            1732,1377,1743,478,1781,176,1213,2666,35,563,
            413,69,69,2038,1132,1485,834,925,2075,502,
            35,431,1709,3355,532,549,574,4491,578,2805,
            351,412,2498,69,71,35,727,423,824,2409,
            35,636,32,4575,2754,27,30,31,629,626,
            26,28,1320,296,25,23,50,1329,106,76,
            77,108,1331,1420,1372,1510,308,1409,177,1884,
            1492,1712,1649,1517,1734,1732,2816,1743,147,1781,
            176,1213,4815,1981,657,413,3245,35,636,32,
            4575,900,27,30,31,629,626,26,28,1320,
            296,25,23,50,1329,106,76,77,85,421,
            414,977,2891,35,636,32,4575,2984,27,30,
            31,629,626,26,28,1320,296,25,23,50,
            1329,106,76,77,108,1331,1420,1372,1510,374,
            141,177,3583,1492,652,1649,1517,1734,1732,2590,
            1743,1239,1781,176,71,35,707,311,191,3245,
            35,636,32,4575,1346,27,30,31,629,626,
            26,28,1320,296,25,23,50,1329,106,76,
            77,108,1331,2556,411,414,977,2891,35,636,
            32,4575,1463,27,30,31,629,626,26,28,
            1320,296,25,23,50,1329,106,76,77,108,
            1331,1420,1372,1510,71,3701,177,70,1492,2916,
            1649,1517,1734,1732,2323,1743,1452,1781,176,71,
            35,707,3285,407,2853,2891,35,636,32,4575,
            1975,27,30,31,629,626,26,28,1320,296,
            25,23,50,1329,106,76,77,108,1331,1420,
            1372,1510,1213,439,177,93,1492,155,1649,1517,
            1734,1732,1389,1743,1837,1781,176,71,35,727,
            423,407,2891,35,636,32,4575,227,27,30,
            31,629,626,26,28,1320,296,25,23,50,
            1329,106,76,77,108,1331,1420,1372,1510,487,
            1465,177,2437,1492,1783,1649,1517,1734,1732,494,
            1743,1884,1781,176,71,35,707,313,407,1258,
            244,406,2770,35,636,32,4575,230,27,30,
            31,629,626,26,28,1320,296,25,23,50,
            1329,106,76,77,108,1331,1420,1372,1510,425,
            462,2119,389,1492,2916,1649,1517,1734,1732,2942,
            1743,592,1828,197,2469,35,636,32,4575,405,
            27,30,31,629,626,26,28,1320,296,25,
            23,50,1329,106,76,77,108,1331,1420,1372,
            1510,1638,3214,177,155,1492,1292,1649,1517,1734,
            1732,2736,1743,155,1781,176,362,369,2237,1929,
            175,2492,35,707,311,361,403,1873,155,193,
            2891,35,636,32,4575,1920,27,30,31,629,
            626,26,28,1320,296,25,23,50,1329,106,
            76,77,108,1331,1420,1372,1510,499,363,177,
            1919,1492,1598,1649,1517,1734,1732,1736,1743,323,
            1781,176,71,35,727,423,188,2891,35,636,
            32,4575,2670,27,30,31,629,626,26,28,
            1320,296,25,23,50,1329,106,76,77,108,
            1331,1420,1372,1510,469,3444,177,357,1492,69,
            1649,1517,1734,1732,991,1743,592,1781,176,71,
            35,727,423,187,2891,35,636,32,4575,2327,
            27,30,31,629,626,26,28,1320,296,25,
            23,50,1329,106,76,77,108,1331,1420,1372,
            1510,468,495,177,233,1492,69,1649,1517,1734,
            1732,1490,1743,313,1781,176,71,35,727,423,
            186,2891,35,636,32,4575,2327,27,30,31,
            629,626,26,28,1320,296,25,23,50,1329,
            106,76,77,108,1331,1420,1372,1510,467,2819,
            177,1632,1492,69,1649,1517,1734,1732,6299,1743,
            456,1781,176,71,3486,707,74,185,2891,35,
            636,32,4575,2499,27,30,31,629,626,26,
            28,1320,296,25,23,50,1329,106,76,77,
            108,1331,1420,1372,1510,71,3352,177,316,1492,
            2525,1649,1517,1734,1732,6206,1743,1090,1781,176,
            2492,35,707,3488,184,2891,35,636,32,4575,
            1457,27,30,31,629,626,26,28,1320,296,
            25,23,50,1329,106,76,77,108,1331,1420,
            1372,1510,3242,147,177,2416,1492,4873,1649,1517,
            1734,1732,388,1743,757,1781,176,71,35,707,
            316,183,2891,35,636,32,4575,1613,27,30,
            31,629,626,26,28,1320,296,25,23,50,
            1329,106,76,77,108,1331,1420,1372,1510,69,
            1452,177,2604,1492,1035,1649,1517,1734,1732,1389,
            1743,1467,1781,176,71,35,707,3495,182,2891,
            35,636,32,4575,1931,27,30,31,629,626,
            26,28,1320,296,25,23,50,1329,106,76,
            77,108,1331,1420,1372,1510,325,501,177,660,
            1492,2801,1649,1517,1734,1732,581,1743,753,1781,
            176,71,35,707,564,181,2891,35,636,32,
            4575,319,27,30,31,629,626,26,28,1320,
            296,25,23,50,1329,106,76,77,108,1331,
            1420,1372,1510,360,743,177,1731,1492,2320,1649,
            1517,1734,1732,1356,1743,147,1781,176,583,4935,
            1377,1377,180,2891,35,636,32,4575,2328,27,
            30,31,629,626,26,28,1320,296,25,23,
            50,1329,106,76,77,108,1331,1420,1372,1510,
            5815,24,177,2463,1492,69,1649,1517,1734,1732,
            3475,1743,3056,1781,176,1389,2853,1377,2562,179,
            2891,35,636,32,4575,2324,27,30,31,629,
            626,26,28,1320,296,25,23,50,1329,106,
            76,77,108,1331,1420,1372,1510,69,1344,177,
            1093,1492,1625,1649,1517,1734,1732,2991,1743,1465,
            1781,176,502,35,431,1377,178,2891,35,636,
            32,4575,473,27,30,31,629,626,26,28,
            1320,296,25,23,50,1329,106,76,77,108,
            1331,1420,1372,1510,3154,68,177,2400,1492,69,
            1649,1517,1734,1732,969,1743,241,1781,176,584,
            2119,2853,2497,192,3012,35,636,32,4575,2651,
            27,30,31,629,626,26,28,1320,296,25,
            23,50,1329,106,76,77,108,1331,1420,1372,
            1967,426,462,162,1243,35,636,32,4256,2742,
            27,30,31,629,626,373,28,1257,1331,1944,
            2641,1976,2653,3485,2565,368,369,1969,3239,1991,
            273,296,44,2166,2795,1978,2014,2016,161,173,
            3012,35,636,32,4575,3584,27,30,31,629,
            626,26,28,1320,296,25,23,50,1329,106,
            76,77,108,1331,1420,1372,1967,1452,266,162,
            88,646,355,102,1968,35,636,32,349,627,
            2696,30,31,629,626,1944,2252,1976,274,264,
            265,1389,3710,1969,900,1991,428,462,2853,1389,
            900,1978,2014,2016,161,172,3012,35,636,32,
            4575,3130,27,30,31,629,626,26,28,1320,
            296,25,23,50,1329,106,76,77,108,1331,
            1420,1372,1967,2664,1377,162,1514,35,636,32,
            4811,2664,27,30,31,629,626,57,28,3765,
            1452,1944,2065,1976,2768,1644,5164,410,227,1969,
            5838,1991,273,296,53,410,424,1978,2014,2016,
            161,171,3012,35,636,32,4575,1377,27,30,
            31,629,626,26,28,1320,296,25,23,50,
            1329,106,76,77,108,1331,1420,1372,1967,485,
            266,162,2243,35,636,32,4811,87,27,30,
            31,629,626,56,28,1630,2252,1944,3703,1976,
            274,264,265,427,462,1969,3101,1991,2146,35,
            488,900,5158,1978,2014,2016,161,170,3012,35,
            636,32,4575,51,27,30,31,629,626,26,
            28,1320,296,25,23,50,1329,106,76,77,
            108,1331,1420,1372,1967,408,266,162,1703,35,
            636,32,5897,3343,27,30,31,629,626,59,
            28,1897,2809,1944,2291,1976,278,264,265,1389,
            3130,1969,61,1991,482,657,321,3642,243,1978,
            2014,2016,161,169,3012,35,636,32,4575,1377,
            27,30,31,629,626,26,28,1320,296,25,
            23,50,1329,106,76,77,108,1331,1420,1372,
            1967,2664,266,162,1703,35,636,32,5897,52,
            27,30,31,629,626,58,28,1986,1331,1944,
            2880,1976,281,264,265,3393,1983,1969,60,1991,
            1465,71,35,330,2058,1978,2014,2016,161,168,
            3012,35,636,32,4575,1377,27,30,31,629,
            626,26,28,1320,296,25,23,50,1329,106,
            76,77,108,1331,1420,1372,1967,1886,266,162,
            1968,35,636,32,2252,384,3151,30,31,629,
            626,2119,485,3578,3579,1944,2073,1976,284,264,
            265,2067,2276,1969,2274,1991,1798,1465,71,1389,
            4997,1978,2014,2016,161,167,3012,35,636,32,
            4575,1625,27,30,31,629,626,26,28,1320,
            296,25,23,50,1329,106,76,77,108,1331,
            1420,1372,1967,2299,2847,162,364,369,2252,4480,
            69,2664,266,482,416,2560,2252,3451,2119,2156,
            2652,1944,147,1976,322,4181,5180,2854,589,1969,
            2669,1991,287,264,265,586,2682,1978,2014,2016,
            161,166,3012,35,636,32,4575,377,27,30,
            31,629,626,26,28,1320,296,25,23,50,
            1329,106,76,77,108,1331,1420,1372,1967,437,
            266,162,971,3141,369,441,69,2252,266,845,
            2352,1414,1519,1377,215,847,3862,1944,332,1976,
            278,264,265,3662,243,1969,331,1991,281,264,
            265,1389,1017,1978,2014,2016,161,165,3012,35,
            636,32,4575,90,27,30,31,629,626,26,
            28,1320,296,25,23,50,1329,106,76,77,
            108,1331,1420,1372,1967,69,638,162,1377,89,
            2076,69,102,2664,266,2248,3537,2364,465,69,
            2311,3721,366,1944,2171,1976,1519,340,1792,1389,
            3862,1969,3862,1991,284,264,265,585,2927,1978,
            2014,2016,161,164,3012,35,636,32,4575,1060,
            27,30,31,629,626,26,28,1320,296,25,
            23,50,1329,106,76,77,108,1331,1420,1372,
            1967,3134,266,162,1377,2152,3541,330,2368,1572,
            638,2660,638,1889,35,727,423,1465,2919,1944,
            69,1976,568,264,265,2298,2818,1969,2818,1991,
            491,477,918,491,2990,1978,2014,2016,161,163,
            2891,35,636,32,4575,308,27,30,31,629,
            626,26,28,1320,296,25,23,50,1329,106,
            76,77,108,1331,1420,1372,1510,69,2119,177,
            415,1492,2627,1649,1517,1734,1732,1620,1743,2001,
            1781,176,502,35,2989,2110,140,3072,35,636,
            32,4575,1718,27,30,31,629,626,26,28,
            1320,296,25,23,50,1329,106,76,77,108,
            1331,1420,1372,1967,49,94,162,96,3328,915,
            2852,1637,143,3232,369,724,956,2980,1377,2680,
            69,69,1944,69,1976,2063,5896,1452,5989,69,
            1969,147,1991,746,2490,5242,72,2075,1978,2014,
            2016,161,160,3132,35,636,32,4575,67,27,
            30,31,629,626,26,28,1320,296,25,23,
            50,1329,106,76,77,108,1331,1420,1372,1510,
            69,1465,177,829,1492,4981,1649,1517,1734,1732,
            69,1743,1452,1781,176,2877,3160,1377,1377,222,
            3245,35,636,32,4575,1467,27,30,31,629,
            626,26,28,1320,296,25,23,50,1329,106,
            76,77,108,1331,1420,1372,1510,66,65,843,
            97,1492,2119,1649,1517,1734,1732,1001,1743,1019,
            1828,197,3245,35,636,32,4575,1806,27,30,
            31,629,626,26,28,1320,296,25,23,50,
            1329,106,76,77,108,1331,1420,1372,1510,71,
            35,330,2155,1492,69,1649,1517,1734,1732,5916,
            1743,69,1828,197,2297,98,678,3399,369,2025,
            2442,2682,2636,577,71,35,727,423,3245,35,
            636,32,4575,458,27,30,31,629,626,26,
            28,1320,296,25,23,50,1329,106,76,77,
            108,1331,1420,1372,1510,1642,49,584,1810,1492,
            335,1649,1517,1734,1732,2330,1743,46,1828,197,
            3245,35,636,32,4575,329,27,30,31,629,
            626,26,28,1320,296,25,23,50,1329,106,
            76,77,108,1331,1420,1372,1510,502,35,431,
            1800,1492,69,1649,1517,1734,1732,1399,1743,147,
            1828,197,69,5492,2682,3667,3434,5977,2524,3043,
            2198,4730,71,35,727,423,3245,35,636,32,
            4575,3052,27,30,31,629,626,26,28,1320,
            296,25,23,50,1329,106,76,77,108,1331,
            1420,1372,1510,255,308,1015,1173,1492,69,1649,
            1517,1734,1732,6210,1743,1791,1828,197,3404,35,
            636,32,4575,457,27,30,31,629,626,26,
            28,1320,296,25,23,50,1329,106,76,77,
            108,1331,1420,1372,1510,386,1377,1904,1994,1492,
            1638,1649,1517,1734,1732,1292,1743,147,1828,197,
            2851,5500,3102,69,378,1803,996,383,1018,1216,
            3712,2682,1909,2682,376,2508,64,310,193,460,
            2823,35,636,32,4575,599,27,30,31,629,
            626,26,28,1320,296,25,23,50,1329,106,
            76,77,108,1331,1420,1372,1967,377,189,69,
            339,1798,212,3158,3041,4997,2682,2031,1897,69,
            2682,3665,2662,2848,1544,2987,1377,3245,35,636,
            32,4575,3246,27,30,31,629,626,26,28,
            1320,296,25,23,50,1329,106,76,77,108,
            1331,1420,1372,1510,3506,232,3050,2030,1492,231,
            1649,1517,1734,1732,1377,2979,3351,35,636,32,
            4575,2682,27,30,31,629,626,26,28,1320,
            296,25,23,50,1329,106,76,77,108,1331,
            1420,1372,1967,3006,55,2163,1638,69,4181,3492,
            4181,1292,5400,3161,5118,2500,3105,3126,2162,3254,
            338,1944,4181,1976,3040,2530,3125,2620,3096,1969,
            4197,1991,4197,3127,193,2352,1377,1978,3230,3245,
            35,636,32,4575,377,27,30,31,629,626,
            26,28,1320,296,25,23,50,1329,106,76,
            77,108,1331,1420,1372,1510,54,2431,3352,3479,
            1492,3267,1649,1517,1734,2937,3298,35,636,32,
            4575,1377,27,30,31,629,626,26,28,1320,
            296,25,23,50,1329,106,76,77,108,1331,
            1420,1372,1967,464,2730,395,3162,394,3157,2710,
            3551,101,3307,3320,3360,2728,3426,3429,87,2944,
            2682,1944,2682,1976,2945,3406,3295,3327,2946,1969,
            3498,1991,3245,35,636,32,4575,3188,27,30,
            31,629,626,26,28,1320,296,25,23,50,
            1329,106,76,77,108,1331,1420,1372,1510,235,
            3004,233,2914,1492,3036,1649,1517,2890,3245,35,
            636,32,4575,173,27,30,31,629,626,26,
            28,1320,296,25,23,50,1329,106,76,77,
            108,1331,1420,1372,1510,3432,2990,2682,2682,1492,
            1377,1649,2892,3298,35,636,32,4575,324,27,
            30,31,629,626,26,28,1320,296,25,23,
            50,1329,106,76,77,108,1331,1420,1372,1967,
            3389,3435,4190,2057,1756,3355,334,4242,3185,2682,
            3491,2682,3608,1007,6952,6952,6952,6952,1944,1377,
            1976,3245,35,636,32,4575,3185,27,30,31,
            629,626,26,28,1320,296,25,23,50,1329,
            106,76,77,108,1331,1420,1372,1510,256,3351,
            226,6952,1492,1377,2869,3298,35,636,32,4575,
            2661,27,30,31,629,626,26,28,1320,296,
            25,23,50,1329,106,76,77,108,1331,1420,
            1372,1967,6952,486,6952,6952,6952,6952,6952,6952,
            590,6952,6952,6952,6952,6952,6952,6952,6952,6952,
            1944,1377,3144,3245,35,636,32,4575,6952,27,
            30,31,629,626,26,28,1320,296,25,23,
            50,1329,106,76,77,108,1331,1420,1372,1510,
            6952,4906,6952,6952,2871,3245,35,636,32,4575,
            6952,27,30,31,629,626,26,28,1320,296,
            25,23,50,1329,106,76,77,108,1331,1420,
            1372,1510,71,35,727,423,2878,3298,35,636,
            32,4575,1377,27,30,31,629,626,26,28,
            1320,296,25,23,50,1329,106,76,77,108,
            1331,1420,1372,1967,49,6952,6952,6952,6952,6952,
            6952,6952,4968,6952,1377,724,1447,3298,35,636,
            32,4575,3150,27,30,31,629,626,26,28,
            1320,296,25,23,50,1329,106,76,77,108,
            1331,1420,1372,1967,5030,6952,6952,6952,6952,6952,
            6952,6952,6952,6952,6952,6952,6952,3245,35,636,
            32,4575,3152,27,30,31,629,626,26,28,
            1320,296,25,23,50,1329,106,76,77,108,
            1331,1420,1372,2688,3245,35,636,32,4575,6952,
            27,30,31,629,626,26,28,1320,296,25,
            23,50,1329,106,76,77,108,1331,1420,1372,
            2739,3245,35,636,32,4575,6952,27,30,31,
            629,626,26,28,1320,296,25,23,50,1329,
            106,76,77,108,1331,1420,1372,2745,3245,35,
            636,32,4575,6952,27,30,31,629,626,26,
            28,1320,296,25,23,50,1329,106,76,77,
            108,1331,1420,1372,2762,3245,35,636,32,4575,
            6952,27,30,31,629,626,26,28,1320,296,
            25,23,50,1329,106,76,77,108,1331,1420,
            1372,3099,3245,35,636,32,4575,6952,27,30,
            31,629,626,26,28,1320,296,25,23,50,
            1329,106,76,77,108,1331,1420,1372,3107,3245,
            35,636,32,4575,6952,27,30,31,629,626,
            26,28,1320,296,25,23,50,1329,106,76,
            77,108,1331,1420,1372,3132,3245,35,636,32,
            4575,6952,27,30,31,629,626,26,28,1320,
            296,25,23,50,1329,106,76,77,108,1331,
            1420,1372,2952,1258,35,636,32,4429,2742,27,
            30,31,629,626,373,28,6952,6952,6952,6952,
            1377,3457,35,727,423,4659,6952,69,2921,6952,
            1377,69,599,1292,271,296,1292,1413,35,636,
            32,4256,4853,27,30,31,629,626,373,28,
            2629,1377,6952,308,377,189,189,638,1296,189,
            2761,571,5917,4181,221,3592,4181,234,2350,6952,
            646,355,266,366,6952,1638,6952,349,627,2204,
            1292,3711,3541,6952,1377,262,6952,1292,377,6952,
            2921,348,269,264,265,599,157,35,727,423,
            6051,6952,6952,193,646,355,1404,442,1038,6952,
            189,349,627,1251,5234,6952,386,3477,189,195,
            342,598,820,6952,6952,3483,309,3353,49,213,
            276,279,282,1344,1452,378,1803,996,383,724,
            810,69,3801,6952,6952,3403,1292,443,444,445,
            3250,6952,6952,6952,6952,6952,2217,2415,2481,2547,
            4680,285,6952,6952,6952,1214,3244,6952,229,189,
            6952,6952,3248,3582,6952,6952,6952,6952,2939,3753,
            3245,35,636,32,4575,2621,27,30,31,629,
            626,26,28,1320,296,25,23,50,1329,106,
            76,77,108,1331,1420,2807,3245,35,636,32,
            4575,6952,27,30,31,629,626,26,28,1320,
            296,25,23,50,1329,106,76,77,108,1331,
            1420,2868,6952,6952,6952,446,449,6952,6952,400,
            1220,35,3494,32,4429,2742,27,30,31,629,
            626,373,28,6952,2159,1822,35,636,32,4256,
            6253,27,30,31,629,626,373,28,6952,157,
            35,727,423,2621,6952,6952,6952,4244,5445,6952,
            6952,6952,6952,6952,6952,385,6952,6952,6316,230,
            69,6952,6952,6952,638,599,2190,6952,6952,6952,
            3862,49,6952,385,69,6952,2792,646,355,1292,
            366,4181,724,1195,349,627,6952,377,189,6952,
            259,69,646,355,6952,599,1292,2031,1582,349,
            627,2000,189,4197,386,6952,4730,6051,1214,6952,
            6952,3195,3246,875,6952,6952,6952,262,189,189,
            638,6952,386,378,1803,996,383,3353,2988,213,
            6952,6952,2664,2575,6952,6952,367,2030,237,249,
            745,378,1803,996,383,386,236,246,247,248,
            250,2575,6952,6952,3427,1,202,6952,6952,4181,
            599,6952,6952,6952,380,1803,996,383,201,6952,
            6952,216,200,203,204,205,206,207,540,6952,
            386,377,262,189,591,1915,35,727,423,452,
            454,3489,3353,6952,213,6952,6952,2664,6952,378,
            1803,996,383,237,249,745,3246,6952,6952,576,
            6952,236,246,247,248,250,2690,49,6952,6952,
            6952,202,6952,6952,6952,538,539,6952,724,2218,
            6952,594,6952,201,6952,214,217,200,203,204,
            205,206,207,3245,35,636,32,4575,6952,27,
            30,31,629,626,26,28,1320,296,25,23,
            50,1329,106,76,77,108,1331,2564,345,157,
            35,727,423,599,6952,6952,2004,35,727,423,
            6952,6952,6952,6952,6952,6952,4545,6952,6952,6952,
            3507,35,727,423,4659,262,189,6952,6952,6952,
            6952,49,6952,272,296,3353,6952,213,49,6952,
            2664,6952,724,2108,6952,6952,237,249,745,724,
            2224,6952,308,6952,236,246,247,248,250,6952,
            431,69,6952,6952,202,599,1292,69,3252,1519,
            1519,266,1292,3862,3862,3252,201,6952,6952,3666,
            200,203,204,205,206,207,6952,262,189,189,
            6952,270,264,265,6952,189,6952,3353,3057,213,
            3760,6952,2664,6952,3058,6952,6952,6952,237,249,
            745,6952,6952,6952,6952,6952,236,246,247,248,
            250,6952,517,638,638,309,202,599,6952,277,
            280,283,1344,1452,6952,6952,6952,6952,201,366,
            366,211,200,203,204,205,206,207,6952,262,
            189,759,35,727,423,759,35,727,423,3353,
            286,213,6952,6952,2664,6952,914,4456,6952,6952,
            237,249,745,6952,6952,6952,6952,6952,236,246,
            247,248,250,49,603,6952,6952,49,202,599,
            6952,69,6952,1519,724,2355,1292,3862,724,47,
            201,6952,6952,209,200,203,204,205,206,207,
            6952,262,189,157,35,727,423,6952,6952,189,
            2873,3353,6952,213,814,6952,2664,6952,3326,6952,
            6952,6952,237,249,745,6952,6952,6952,6952,6952,
            236,246,247,248,250,49,689,638,6952,6952,
            202,599,6952,6952,6952,6952,724,47,6952,6952,
            6952,6952,201,366,6952,210,200,203,204,205,
            206,207,6952,262,189,759,35,727,423,6952,
            6952,6952,965,3353,6952,213,69,6952,2664,6952,
            5386,1292,6952,6952,237,249,745,6952,6952,6952,
            6952,6952,236,246,247,248,250,49,775,6952,
            6952,6952,202,599,189,69,6952,6952,724,47,
            1292,2163,6952,2997,201,6952,4181,220,200,203,
            204,205,206,207,6952,262,189,157,35,727,
            423,6952,6952,189,2600,3353,6952,213,4197,6952,
            2664,6952,4211,6952,6952,6952,237,249,745,6952,
            6952,6952,6952,6952,236,246,247,248,250,49,
            861,6952,69,69,202,599,6952,4181,599,6952,
            724,47,6952,6952,6952,6952,201,6952,6952,3713,
            200,203,204,205,206,207,6952,262,189,377,
            377,189,71,35,727,423,920,3353,6952,213,
            2125,6952,2664,6952,6952,6952,6952,6952,237,249,
            745,6952,6952,394,3246,3246,236,246,247,248,
            250,6952,6952,6952,49,6952,202,6952,6952,6952,
            6952,3670,3295,3327,6952,724,1171,6952,201,2172,
            2077,225,200,203,204,205,206,207,1391,35,
            636,32,4256,4853,27,30,31,629,626,373,
            28,3245,35,636,32,4575,6952,27,30,31,
            629,626,26,28,1320,296,25,23,50,1329,
            106,76,77,108,2597,6952,6952,6952,157,35,
            727,423,6952,6952,157,35,727,423,6952,6952,
            6952,6952,947,6952,6952,6952,6952,599,6952,6952,
            2765,35,727,423,6952,646,355,6952,6952,6952,
            49,6952,349,627,6952,6952,49,386,6952,262,
            189,724,47,6952,6952,6952,587,724,47,3353,
            6952,213,49,6952,2664,6952,378,1803,996,383,
            237,249,745,724,47,6952,588,1457,236,246,
            247,248,250,1652,1033,6952,6952,6952,202,599,
            6952,6952,157,35,727,423,6952,6952,6952,2561,
            201,6952,6952,219,200,203,204,205,206,207,
            6952,262,189,71,35,727,423,6952,6952,6952,
            6952,3353,6952,213,49,6952,2664,6952,6952,6952,
            6952,6952,237,249,745,724,47,6952,6952,6952,
            236,246,247,248,250,49,6952,6952,6952,6952,
            202,6952,6952,6952,6952,6952,724,715,6952,6952,
            6952,1699,201,6952,6952,228,200,203,204,205,
            206,207,3245,35,636,32,4575,6952,27,30,
            31,629,626,26,28,1320,296,25,23,50,
            1329,106,76,77,108,2616,3245,35,636,32,
            4575,6952,27,30,31,629,626,26,28,1320,
            296,25,23,50,1329,106,76,77,108,2622,
            3556,35,552,6952,6952,6952,6952,6952,6952,6952,
            6952,6952,6952,271,296,6952,2101,35,636,32,
            4429,6952,27,30,31,629,626,373,28,6952,
            2357,35,636,32,4256,2742,27,30,31,629,
            626,373,28,6952,71,35,727,423,6952,6952,
            6952,266,1745,35,636,32,4256,2742,27,30,
            31,629,626,373,28,6952,6952,6952,6952,69,
            638,269,264,265,4181,1378,49,6952,6952,3862,
            4181,6952,6952,646,355,6952,367,724,731,6952,
            350,627,6952,6952,6952,386,377,646,355,6952,
            6952,69,4197,6952,349,627,4181,6952,6952,276,
            279,282,1344,1452,380,1803,996,383,348,646,
            355,3246,157,35,727,423,349,627,377,638,
            2795,35,727,423,6952,2349,2679,2687,2753,6221,
            348,6952,6952,6952,6952,366,2179,342,598,820,
            6952,6952,6952,3246,49,69,6952,6952,6952,6952,
            599,6952,49,6952,6952,724,47,6952,6952,596,
            598,820,4456,724,47,6952,6952,394,2222,6952,
            6952,6952,377,189,6952,6952,6952,6952,561,562,
            566,1746,2031,3709,6952,2798,3295,3327,6952,3129,
            3582,6952,6952,6952,6952,6952,6952,3246,6952,3245,
            713,636,1850,4575,2811,27,30,31,629,626,
            26,28,1320,296,25,23,50,1329,106,76,
            77,84,2377,6952,6952,6952,6952,6952,3245,35,
            636,32,4575,604,27,30,31,629,626,26,
            28,1320,296,25,23,50,1329,106,76,77,
            83,3245,35,636,32,4575,6952,27,30,31,
            629,626,26,28,1320,296,25,23,50,1329,
            106,76,77,82,3245,35,636,32,4575,6952,
            27,30,31,629,626,26,28,1320,296,25,
            23,50,1329,106,76,77,81,3245,35,636,
            32,4575,6952,27,30,31,629,626,26,28,
            1320,296,25,23,50,1329,106,76,77,80,
            3245,35,636,32,4575,6952,27,30,31,629,
            626,26,28,1320,296,25,23,50,1329,106,
            76,77,79,3245,35,636,32,4575,6952,27,
            30,31,629,626,26,28,1320,296,25,23,
            50,1329,106,76,77,78,2951,35,636,32,
            4575,6952,27,30,31,629,626,26,28,1320,
            296,25,23,50,1329,106,76,77,104,3245,
            35,636,32,4575,6952,27,30,31,629,626,
            26,28,1320,296,25,23,50,1329,106,76,
            77,110,3245,35,636,32,4575,6952,27,30,
            31,629,626,26,28,1320,296,25,23,50,
            1329,106,76,77,109,3245,35,636,32,4575,
            6952,27,30,31,629,626,26,28,1320,296,
            25,23,50,1329,106,76,77,107,3245,35,
            636,32,4575,6952,27,30,31,629,626,26,
            28,1320,296,25,23,50,1329,106,76,77,
            105,3192,35,636,32,4575,6952,27,30,31,
            629,626,26,28,1320,296,25,23,50,1329,
            86,76,77,1243,35,636,32,4256,2742,27,
            30,31,629,626,373,28,1578,71,35,727,
            423,4181,6952,6952,71,35,727,423,6952,6952,
            6952,6952,6952,6952,6952,6952,1845,71,35,727,
            423,4181,6952,262,6952,6952,6952,6952,6952,49,
            6952,6952,69,6952,6952,6952,49,4181,6952,6952,
            724,2218,6952,262,239,249,745,724,1187,49,
            646,355,238,246,247,248,250,349,627,377,
            724,2548,6952,6952,239,249,745,6952,6952,6952,
            6952,348,238,246,247,248,250,1934,6952,6952,
            6952,6952,4181,6952,3246,240,242,244,3250,2792,
            251,241,243,69,4181,6952,6952,6952,4181,6952,
            343,598,820,6952,262,240,242,244,3250,2354,
            251,241,243,6952,6952,6952,4197,6952,6952,6952,
            377,6952,6952,6952,6952,239,249,745,2668,6952,
            6136,6952,6952,238,246,247,248,250,2023,6952,
            6952,6952,6952,4181,6952,3246,6952,6952,2676,6952,
            6136,1360,35,636,32,4429,6952,27,30,31,
            629,626,373,28,6952,262,240,242,244,3250,
            2864,251,241,243,6952,6952,6952,6952,6952,6952,
            6952,6952,6952,6952,6952,69,239,249,745,6952,
            4181,540,6952,6952,238,246,247,248,250,6952,
            6952,6952,6952,6952,6952,638,6952,6952,1667,2737,
            6952,6136,377,4181,6952,6952,6952,6952,646,355,
            6952,367,6952,6952,6952,352,627,240,242,244,
            3250,6952,580,241,243,262,1756,3246,537,539,
            6952,4181,6952,6952,6952,6952,6952,6952,6952,6952,
            6952,6952,6952,6952,6952,6952,239,249,745,6952,
            6952,6952,544,262,238,246,247,248,250,6952,
            6952,6952,6952,6952,6952,6952,3574,6952,6952,6952,
            6952,6952,6952,6952,239,249,745,6952,6952,6952,
            6952,6952,238,246,247,248,250,240,242,244,
            3250,6952,579,241,243,6952,2112,6952,6952,69,
            2793,4181,6952,6952,4181,4181,6952,6952,6952,2201,
            6952,3605,35,552,4181,240,242,244,3250,6952,
            252,241,243,262,272,296,377,4197,6952,6952,
            6952,6952,6952,6952,6952,6952,262,6952,6952,6952,
            6952,6952,6952,1378,239,249,745,3862,4181,6952,
            6952,3246,238,246,247,248,250,239,249,745,
            6952,6952,266,6952,6952,238,246,247,248,250,
            4197,6952,6952,6952,6952,6952,542,6952,6952,6952,
            6952,6952,270,264,265,240,242,244,3250,1179,
            341,241,243,5917,4181,6952,6952,638,240,242,
            244,3250,540,534,241,243,3042,6952,6952,6952,
            6952,599,6952,366,69,6952,262,6952,6952,599,
            277,280,283,1344,1452,69,6952,6952,6952,6952,
            599,6952,6952,377,189,6952,6952,1404,442,1038,
            5386,377,189,221,6952,394,6952,6952,6952,537,
            539,221,377,189,6952,69,6952,6952,2204,6952,
            4181,6952,221,2798,3295,3327,2204,6952,6952,6952,
            6952,6952,6952,6952,6952,6952,6952,2204,443,444,
            445,3250,377,6952,6952,6952,6952,3632,6952,6952,
            6952,6952,6952,6952,6952,6952,6952,6952,6952,561,
            562,567,6952,3248,6952,6952,6952,3246,6952,6952,
            6952,6952,6952,6952,6952,6952,6952,6952,6952,6952,
            6952,223,6952,6952,6952,6952,6952,6952,6952,3872,
            6952,6952,595,6952,6952,6952,6952,6952,6952,6952,
            3904,6952,6952,6952,6952,6952,6952,6952,6952,6952,
            6952,6952,6952,6952,6952,6952,6952,6952,6952,6952,
            6952,6952,6952,6952,6952,6952,446,448,6952,6952,
            6952,6952,6952,6952,6952,6952,6952,6952,6952,6952,
            6952,6952,6952,6952,6952,6952,6952,6952,6952,6952,
            6952,6952,6952,2286,6952,6952,4218,6952,6952,6952,
            6952,6952,6952,3668,6952,0,864,1,0,39,
            6967,1,0,39,6966,1,0,38,641,0,
            38,6967,0,38,6966,0,489,919,0,475,
            1191,0,1192,29,0,6967,48,0,6966,48,
            0,6964,418,0,6963,418,0,39,6967,0,
            39,6966,0,1,479,0,493,981,0,492,
            1406,0,35,33,0,1192,422,0,47,37,
            0,4001,126,0,1,1030,0,1,7259,0,
            1,7258,0,1,7257,0,1,7256,0,1,
            7255,0,1,7254,0,1,7253,0,1,7252,
            0,1,7251,0,1,7250,0,1,7249,0,
            318,429,0,318,323,0,7220,275,0,7219,
            275,0,7324,275,0,7323,275,0,7247,275,
            0,7246,275,0,7245,275,0,7244,275,0,
            7243,275,0,7242,275,0,7241,275,0,7240,
            275,0,7259,275,0,7258,275,0,7257,275,
            0,7256,275,0,7255,275,0,7254,275,0,
            7253,275,0,7252,275,0,7251,275,0,7250,
            275,0,7249,275,0,39,6967,275,0,39,
            6966,275,0,6990,275,0,43,6988,0,43,
            37,0,1023,91,0,32,34,0,39,641,
            0,1,5861,0,1,1266,0,1,5608,0,
            1,5631,0,1,5654,0,1,5677,0,1,
            5700,0,1,5723,0,2680,1,0,5579,1,
            0,1,6974,0,1,6973,0,1,6972,0,
            1,6971,0,1,6970,0,1,6969,0,1,
            6968,0,1,808,0,1,979,0,1,1065,
            0,1,1108,0,1,1297,0,1,3360,0,
            39,1,0,365,480,0,6958,1,0,6957,
            1,0,271,714,0,32,423,0,29,422,
            0,4001,128,0,4001,127,0,6967,275,0,
            6966,275,0,536,3249,0,6990,1,263,0,
            39,1,263,0,263,451,0,6967,37,0,
            6966,37,0,6988,45,0,37,45,0,6990,
            1,0,1,92,0,6962,440,0,6961,440,
            0,655,1,0,641,1,0,263,450,0,
            3402,418,0,6967,2,37,0,6966,2,37,
            0,6967,36,0,6966,36,0,1,365,0,
            8,12,0,365,95,0,35,73,0,536,
            6108,0,1,263,0,313,1581,0,263,254,
            0,1,1199,0,1,2122,0,263,253,0,
            6964,1,0,6960,1,0,1,263,3587,0,
            6961,263,0,3588,263,0,3643,263,0,10,
            12,0,8,10,12,0,3708,227,0,218,
            5172,0
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    @Override
    public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    @Override
    public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,55,56,3,58,59,
            0,61,62,63,4,65,66,67,0,69,
            0,1,2,73,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            0,55,56,3,58,59,0,61,62,63,
            4,65,66,67,0,69,0,1,2,73,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,0,55,56,0,
            58,59,0,61,62,63,7,65,66,67,
            0,69,0,0,4,73,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,55,56,0,58,59,0,61,
            62,63,0,65,66,67,94,69,0,86,
            87,3,74,75,76,77,78,79,80,81,
            82,83,84,85,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,70,55,
            56,0,58,59,3,61,62,63,96,65,
            66,67,94,69,92,93,101,102,74,75,
            76,77,78,79,80,81,82,83,84,85,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,55,56,3,58,59,
            0,61,62,63,0,65,66,67,0,69,
            0,0,1,2,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            0,55,56,3,58,59,0,61,62,63,
            0,65,66,67,94,69,86,87,0,95,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,0,55,56,0,
            58,59,6,61,62,63,7,65,66,67,
            94,69,92,93,86,87,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,55,56,0,58,59,3,61,
            62,63,0,65,66,67,0,69,0,1,
            2,5,74,75,76,77,78,79,80,81,
            82,83,84,85,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,0,55,
            56,3,58,59,0,61,62,63,96,65,
            66,67,0,69,0,3,0,95,74,75,
            76,77,78,79,80,81,82,83,84,85,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,55,56,0,58,59,
            0,61,62,63,7,65,66,67,0,69,
            86,87,86,87,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            0,55,56,3,58,59,0,61,62,63,
            96,65,66,67,0,69,0,3,0,0,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,0,55,56,0,
            58,59,0,61,62,63,4,65,66,67,
            0,69,86,87,86,87,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,121,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,68,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,55,56,3,58,59,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,1,2,0,4,39,3,0,
            1,2,3,4,5,6,7,8,0,1,
            2,53,4,55,56,57,58,0,0,61,
            62,63,0,1,2,3,4,0,6,71,
            8,73,5,0,7,0,0,0,1,2,
            3,4,5,6,7,8,88,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            71,54,114,115,116,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,91,
            0,0,1,2,39,0,98,6,3,8,
            5,0,7,0,9,0,1,2,53,4,
            55,56,57,58,0,0,61,62,63,0,
            1,2,3,4,10,6,71,8,73,34,
            35,36,37,120,39,0,0,0,1,2,
            0,4,5,88,7,9,9,57,0,54,
            0,1,2,3,4,60,6,9,8,64,
            57,60,57,68,0,70,71,72,73,114,
            115,116,0,1,2,3,4,5,6,7,
            8,86,87,68,89,90,91,92,93,94,
            95,96,97,98,99,100,101,102,103,104,
            105,106,107,108,109,110,111,112,72,72,
            60,0,117,118,119,120,0,69,54,3,
            9,5,0,7,0,9,0,0,1,2,
            3,4,60,6,97,8,0,1,2,3,
            4,5,70,7,0,1,2,23,24,5,
            34,35,36,37,0,39,34,35,22,23,
            24,25,26,27,28,29,30,31,32,33,
            54,0,0,0,1,2,60,4,0,6,
            64,8,4,5,68,7,70,71,72,73,
            64,0,1,2,3,4,60,6,71,8,
            64,57,86,87,68,89,90,91,92,93,
            94,95,96,97,98,99,100,101,102,103,
            104,105,106,107,108,109,110,111,112,118,
            57,0,60,117,118,119,120,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,0,0,0,1,2,39,4,5,0,
            7,0,1,2,0,4,5,3,7,0,
            53,0,55,56,57,58,0,0,61,62,
            63,0,65,0,1,2,9,0,7,6,
            73,22,23,24,25,26,27,28,29,30,
            31,32,33,92,93,88,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            57,70,0,1,2,39,4,60,6,72,
            8,0,1,2,95,4,5,0,7,53,
            54,55,56,57,58,113,9,61,62,63,
            0,65,101,102,103,104,105,106,107,108,
            109,110,111,112,0,1,2,3,4,5,
            6,7,8,0,88,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,72,
            0,0,1,2,39,4,5,0,7,0,
            70,4,0,86,87,0,62,54,53,0,
            55,56,57,58,0,0,61,62,63,22,
            65,0,1,2,3,4,0,6,73,8,
            9,101,102,103,104,105,106,107,108,109,
            110,111,112,88,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,0,1,
            2,60,4,39,6,0,8,97,0,1,
            2,86,87,72,6,96,0,53,0,55,
            56,57,58,0,95,61,62,63,0,65,
            0,114,115,116,0,1,2,73,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,0,88,0,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,0,1,2,
            60,68,39,6,0,8,91,0,70,5,
            66,67,0,98,54,0,53,5,55,56,
            57,58,0,0,61,62,63,4,65,0,
            0,9,3,0,1,2,73,22,23,24,
            25,26,27,28,29,30,31,32,33,89,
            90,88,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,0,0,0,60,
            68,39,5,64,0,73,0,68,4,66,
            67,71,0,99,100,53,0,55,56,57,
            58,99,100,61,62,63,22,65,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,1,2,3,4,5,6,7,8,53,
            88,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,0,1,2,0,4,
            39,0,1,2,0,0,99,100,0,0,
            60,0,0,91,53,4,55,56,57,58,
            98,9,61,62,63,0,65,22,23,24,
            25,26,27,28,29,30,31,32,33,0,
            1,2,3,4,5,0,7,0,0,88,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,72,60,0,1,2,39,
            86,87,0,1,2,9,4,0,6,60,
            8,0,54,53,57,55,56,57,58,97,
            9,61,62,63,0,65,0,1,2,3,
            4,5,6,7,8,0,10,11,12,13,
            14,15,16,17,18,19,20,21,88,0,
            1,2,3,4,0,6,0,8,9,57,
            34,35,36,37,38,69,40,41,42,43,
            44,45,46,47,48,49,50,51,52,0,
            0,74,0,0,73,59,0,0,39,0,
            64,9,66,67,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,0,1,2,3,
            4,39,6,0,8,9,91,0,34,35,
            36,37,38,98,40,41,42,43,44,45,
            46,47,48,49,50,51,52,64,92,93,
            0,1,2,59,68,39,0,34,35,0,
            71,34,35,69,0,1,2,73,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            0,1,2,114,115,116,0,0,1,2,
            113,0,34,35,36,37,38,57,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,57,0,64,0,1,2,59,0,1,
            2,3,4,5,6,7,8,69,10,11,
            12,13,14,15,16,17,18,19,20,21,
            54,0,1,2,57,54,0,0,0,0,
            64,3,34,35,36,37,38,0,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,57,60,0,0,89,90,59,0,0,
            89,90,3,9,66,67,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,60,60,
            64,0,1,2,0,1,2,0,1,2,
            34,35,36,37,38,68,40,41,42,43,
            44,45,46,47,48,49,50,51,52,0,
            0,0,3,69,71,59,0,1,2,3,
            4,5,6,7,8,69,10,11,12,13,
            14,15,16,17,18,19,20,21,57,0,
            0,57,3,3,57,36,37,0,0,9,
            34,35,36,37,38,0,40,41,42,43,
            44,45,46,47,48,49,50,51,52,60,
            0,0,0,0,3,59,5,6,7,0,
            0,0,66,67,0,0,1,2,0,9,
            9,0,1,2,3,4,5,9,7,0,
            60,0,54,4,0,34,35,36,37,54,
            9,40,72,22,23,24,25,26,27,28,
            29,30,31,32,33,54,117,39,119,0,
            0,60,3,54,64,64,64,66,67,68,
            39,70,57,64,89,90,0,0,68,0,
            3,60,72,54,73,64,68,86,87,68,
            89,90,91,92,93,94,95,96,89,90,
            99,100,101,0,103,104,105,106,107,108,
            109,110,111,112,0,1,2,0,117,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,0,0,64,0,1,2,68,0,1,
            2,10,10,34,35,36,37,38,0,40,
            41,42,43,44,45,46,47,48,49,50,
            51,52,0,1,2,3,4,5,6,7,
            8,64,10,11,12,13,14,15,16,17,
            18,19,20,21,53,53,0,0,57,57,
            0,0,0,0,0,9,34,35,36,37,
            38,10,40,41,42,43,44,45,46,47,
            48,49,50,51,52,22,23,24,25,26,
            27,28,29,30,31,32,33,118,66,67,
            0,1,2,3,4,5,6,7,8,0,
            10,11,12,13,14,15,16,17,18,19,
            20,21,61,0,64,0,0,70,0,73,
            0,0,0,71,34,35,36,37,38,9,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,0,0,0,3,3,3,59,
            0,1,2,3,4,5,6,7,8,39,
            10,11,12,13,14,15,16,17,18,19,
            20,21,54,0,59,54,54,64,0,0,
            0,68,64,0,34,35,36,37,38,0,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,0,0,0,3,89,90,0,
            60,0,1,2,3,4,5,6,7,8,
            0,10,11,12,13,14,15,16,17,18,
            19,20,21,54,54,0,0,54,3,0,
            0,0,0,64,4,34,35,36,37,38,
            9,40,41,42,43,44,45,46,47,48,
            49,50,51,52,75,0,0,0,89,90,
            59,0,1,2,3,4,5,6,7,8,
            39,10,11,12,13,14,15,16,17,18,
            19,20,21,54,54,0,54,0,0,0,
            0,0,97,4,0,34,35,36,37,38,
            71,40,41,42,43,44,45,46,47,48,
            49,50,51,52,0,0,0,0,0,0,
            59,0,1,2,3,4,5,6,7,8,
            0,10,11,12,13,14,15,16,17,18,
            19,20,21,54,54,54,0,0,54,0,
            0,0,38,68,38,34,35,36,37,38,
            0,40,41,42,43,44,45,46,47,48,
            49,50,51,52,0,0,0,3,0,0,
            59,0,1,2,3,4,5,6,7,8,
            71,10,11,12,13,14,15,16,17,18,
            19,20,21,0,0,54,0,0,0,0,
            0,0,97,38,68,34,35,36,37,38,
            70,40,41,42,43,44,45,46,47,48,
            49,50,51,52,0,1,2,3,4,5,
            6,7,8,0,10,11,12,13,14,15,
            16,17,18,19,20,21,0,0,54,0,
            113,0,113,0,0,0,0,0,34,35,
            36,37,38,70,40,41,42,43,44,45,
            46,47,48,49,50,51,52,0,1,2,
            3,4,5,6,7,8,0,10,11,12,
            13,14,15,16,17,18,19,20,21,0,
            0,0,0,0,71,0,0,0,0,0,
            0,34,35,36,37,38,70,40,41,42,
            43,44,45,46,47,48,49,50,51,52,
            0,1,2,3,4,5,6,7,8,0,
            10,11,12,13,14,15,16,17,18,19,
            20,21,0,0,68,0,0,0,0,0,
            0,0,0,0,34,35,36,37,38,70,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,0,1,2,3,4,5,6,
            7,8,0,10,11,12,13,14,15,16,
            17,18,19,20,21,0,0,0,0,70,
            0,0,0,0,0,9,3,34,35,36,
            37,38,9,40,41,42,43,44,45,46,
            47,48,49,50,51,52,0,1,2,0,
            4,0,0,0,0,0,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,0,0,60,0,0,71,64,72,71,
            9,68,71,0,70,72,0,1,2,53,
            4,55,56,0,58,0,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,0,0,0,0,0,0,0,0,9,
            0,0,0,0,0,0,1,2,0,53,
            70,55,56,72,58,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,1,2,0,53,0,
            55,56,72,58,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,0,0,
            0,0,1,2,3,4,5,6,7,8,
            9,0,0,0,0,0,0,53,0,55,
            56,0,58,22,23,24,25,26,27,28,
            29,30,31,32,33,0,0,70,0,0,
            39,0,0,22,23,24,25,26,27,28,
            29,30,31,32,33,54,0,0,0,0,
            0,60,0,1,2,3,4,5,6,7,
            8,9,0,72,0,0,0,0,0,0,
            0,0,0,0,22,23,24,25,26,27,
            28,29,30,31,32,33,0,0,0,0,
            0,39,22,23,24,25,26,27,28,29,
            30,31,32,33,0,0,0,0,0,0,
            0,0,60,0,0,0,0,0,0,0,
            0,0,0,0,72,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    @Override
    public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            6952,6926,6902,6902,6902,6902,6902,6902,6902,6936,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,6930,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,6952,1,1,5033,1,1,
            6952,1394,7160,2980,668,3497,1,1,1,6963,
            6952,6966,6967,6959,2489,3630,3400,3298,3396,3586,
            4658,3598,740,3594,4188,3589,10,6939,6939,6939,
            6939,6939,6939,6939,6939,6939,6939,6939,6939,6939,
            6939,6939,6939,6939,6939,6939,6939,6939,6939,6939,
            6939,6939,6939,6939,6939,6939,6939,6939,6939,6939,
            6939,6939,6939,6939,6939,6939,6939,6939,6939,6939,
            6939,6939,6939,6939,6939,6939,6939,6939,6939,6939,
            6952,6939,6939,714,6939,6939,39,6939,6939,6939,
            6990,6939,6939,6939,365,6939,6952,6548,6545,6939,
            6939,6939,6939,6939,6939,6939,6939,6939,6939,6939,
            6939,6939,8,6942,6942,6942,6942,6942,6942,6942,
            6942,6942,6942,6942,6942,6942,6942,6942,6942,6942,
            6942,6942,6942,6942,6942,6942,6942,6942,6942,6942,
            6942,6942,6942,6942,6942,6942,6942,6942,6942,6942,
            6942,6942,6942,6942,6942,6942,6942,6942,6942,6942,
            6942,6942,6942,6942,6942,6942,430,6942,6942,131,
            6942,6942,133,6942,6942,6942,3721,6942,6942,6942,
            6952,6942,419,121,2078,6942,6942,6942,6942,6942,
            6942,6942,6942,6942,6942,6942,6942,6942,6952,6926,
            6902,6902,6902,6902,6902,6902,6902,6933,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,6930,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,137,1,1,139,1,1,153,1394,
            7160,2980,129,3497,1,1,3638,6963,346,4340,
            4366,883,2489,3630,3400,3298,3396,3586,4658,3598,
            740,3594,4188,3589,6952,6926,6902,6902,6902,6902,
            6902,6902,6902,6933,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,6930,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1219,1,
            1,91,1,1,6712,1394,7160,2980,3509,3497,
            1,1,3673,6963,3835,3803,3407,4301,2489,3630,
            3400,3298,3396,3586,4658,3598,740,3594,4188,3589,
            6952,6926,6902,6902,6902,6902,6902,6902,6902,6933,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,6930,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,271,1,1,6802,1,1,
            134,1394,7160,2980,135,3497,1,1,333,6963,
            141,432,6966,6967,2489,3630,3400,3298,3396,3586,
            4658,3598,740,3594,4188,3589,6952,6926,6902,6902,
            6902,6902,6902,6902,6902,6933,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,6930,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,5993,1,1,154,1394,7160,2980,
            149,3497,1,1,3638,6963,4340,4366,125,3602,
            2489,3630,3400,3298,3396,3586,4658,3598,740,3594,
            4188,3589,6952,6926,6902,6902,6902,6902,6902,6902,
            6902,6933,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,6930,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,6952,1,1,151,
            1,1,1793,1394,7160,2980,3755,3497,1,1,
            3673,6963,3907,3867,4340,4366,2489,3630,3400,3298,
            3396,3586,4658,3598,740,3594,4188,3589,6952,6926,
            6902,6902,6902,6902,6902,6902,6902,6933,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,6930,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,157,1,1,6952,1,1,4481,1394,
            7160,2980,155,3497,1,1,6952,6963,48,6548,
            6545,1608,2489,3630,3400,3298,3396,3586,4658,3598,
            740,3594,4188,3589,6952,6926,6902,6902,6902,6902,
            6902,6902,6902,6933,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,6930,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,6952,1,
            1,4721,1,1,6952,1394,7160,2980,3546,3497,
            1,1,6952,6963,124,4727,123,673,2489,3630,
            3400,3298,3396,3586,4658,3598,740,3594,4188,3589,
            6952,6926,6902,6902,6902,6902,6902,6902,6902,6933,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,6930,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,138,1,1,132,1,1,
            6952,1394,7160,2980,3721,3497,1,1,6952,6963,
            4340,4366,4340,4366,2489,3630,3400,3298,3396,3586,
            4658,3598,740,3594,4188,3589,6952,6926,6902,6902,
            6902,6902,6902,6902,6902,6933,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,6930,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6952,1,1,4851,1,1,218,1394,7160,2980,
            3509,3497,1,1,6952,6963,122,1581,145,6952,
            2489,3630,3400,3298,3396,3586,4658,3598,740,3594,
            4188,3589,6952,3587,1,1,1,1,1,1,
            1,3588,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,6961,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,6952,1,1,190,
            1,1,430,1394,7160,2980,423,3497,1,1,
            6952,6963,4340,4366,4340,4366,2489,3630,3400,3298,
            3396,3586,4658,3598,740,3594,4188,3589,39,6560,
            6557,4450,864,5654,5579,5677,2680,6949,758,7251,
            7249,7258,7257,7253,7254,7252,7255,7256,7259,7250,
            7246,7323,7324,7240,7247,7243,7219,7245,7244,7241,
            7242,7220,5631,5608,5723,5700,6971,2127,1266,979,
            1297,6973,1065,5861,1108,6974,6972,808,6968,6969,
            6970,7385,6952,1442,7386,3330,7387,1554,6952,6830,
            6830,263,6826,263,263,263,263,6834,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,323,6623,6623,6952,318,263,3040,6952,
            6523,6519,655,6516,6887,641,6887,2680,6952,6560,
            6557,1,6990,1,1,6823,1,489,111,1056,
            7399,953,1,6523,6519,655,6516,6952,641,263,
            2680,451,1593,6952,1584,6952,257,345,6523,6519,
            655,6516,6887,641,6887,2680,7487,7251,7249,7258,
            7257,7253,7254,7252,7255,7256,7259,7250,7246,7323,
            7324,7240,7247,7243,7219,7245,7244,7241,7242,7220,
            3060,6536,7422,7423,7424,6952,6830,6830,263,6826,
            263,263,263,263,6867,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,5769,
            37,38,6533,6530,263,33,5792,6527,6572,2680,
            6572,354,6572,47,6572,429,6620,6620,1,318,
            1,1,6823,1,337,550,1056,7399,953,365,
            6560,6557,655,864,7288,641,263,2680,450,6572,
            6572,6572,6572,6515,6572,6952,6952,1,6790,6790,
            6952,6849,365,7487,365,6958,397,6988,6952,6572,
            1,6523,6519,4415,6516,6572,641,6964,2680,6572,
            1334,1512,318,6572,475,6572,6572,6572,6572,7422,
            7423,7424,401,6523,6519,4415,6516,1,641,1,
            2680,6572,6572,1078,6572,6572,6572,6572,6572,6572,
            6572,6572,6572,6572,6572,6572,6572,6572,6572,6572,
            6572,6572,6572,6572,6572,6572,6572,6572,6957,397,
            1512,6952,6572,6572,6572,6572,6952,6963,6539,6715,
            6956,6715,118,6715,370,6715,6952,1,6523,6519,
            655,6516,1512,641,397,2680,37,6967,6967,6967,
            6967,6967,1367,6967,37,6578,6578,7323,7324,365,
            6715,6715,6715,6715,6952,6715,4633,1339,6967,6967,
            6967,6967,6967,6967,6967,6967,6967,6967,6967,6967,
            6715,6952,353,6952,6560,6557,6715,864,39,6718,
            6715,2680,6990,365,6715,365,6715,6715,6715,6715,
            7442,1,6523,6519,6861,6516,6967,6864,3060,6745,
            6967,6988,6715,6715,6967,6715,6715,6715,6715,6715,
            6715,6715,6715,6715,6715,6715,6715,6715,6715,6715,
            6715,6715,6715,6715,6715,6715,6715,6715,6715,6955,
            2468,130,1512,6715,6715,6715,6715,6952,6902,6902,
            263,6902,263,263,263,263,6908,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,10736,1,1,1,1,1,
            1,6952,6952,479,1,1,263,1,6563,136,
            6563,480,39,39,103,6990,6793,3476,6793,258,
            1,139,1,1,6899,1,6952,1,2865,7197,
            2980,152,3497,37,6578,6578,194,493,3755,6578,
            254,7246,7323,7324,7240,7247,7243,7219,7245,7244,
            7241,7242,7220,3835,3803,7487,6952,6902,6902,263,
            6902,263,263,263,263,263,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,10736,1,1,1,1,1,1,
            1840,2080,6952,6560,6557,263,864,6566,641,194,
            2680,92,1,1,3602,1,6852,6952,6852,1,
            3340,1,1,6899,1,3634,6958,2865,7197,2980,
            159,3497,3407,4301,2033,1986,1939,1892,1845,1798,
            1751,1704,1657,1610,6952,6523,6519,655,6516,1,
            641,1,2680,29,7487,6952,6902,6902,263,6902,
            263,263,263,263,6917,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,10736,1,1,1,1,1,1,6957,
            392,95,39,39,263,6990,6893,39,6893,158,
            2834,6990,6952,4340,4366,144,7549,6542,1,156,
            1,1,6899,1,6952,6952,2865,7197,2980,2018,
            3497,1,6523,6519,4415,6516,6952,641,253,2680,
            6796,3446,4464,2768,2702,2636,2570,2504,2438,2372,
            2306,2240,2174,7487,6952,6902,6902,263,6902,263,
            263,263,263,6908,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,10736,1,1,1,1,1,1,6952,6560,
            6557,1512,864,263,641,114,2680,7343,6952,6966,
            6967,4340,4366,6799,1793,3546,259,1,6952,1,
            1,6899,1,396,673,2865,7197,2980,328,3497,
            492,7422,7423,7424,6952,6966,6967,254,7246,7323,
            7324,7240,7247,7243,7219,7245,7244,7241,7242,7220,
            146,6952,7487,6952,6902,6902,263,6902,263,263,
            263,263,6908,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            10736,1,1,1,1,1,1,6952,6966,6967,
            6569,3473,263,641,115,2680,5769,6952,3102,5346,
            5746,721,117,5792,4109,260,1,5346,1,1,
            6899,1,6952,6952,2865,7197,2980,1264,3497,1,
            6952,6960,4433,6952,6548,6545,254,7246,7323,7324,
            7240,7247,7243,7219,7245,7244,7241,7242,7220,4082,
            4055,7487,6952,6902,6902,263,6902,263,263,263,
            263,263,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,10736,
            1,1,1,1,1,1,6952,116,6952,1512,
            1144,263,5346,575,39,6959,261,575,6990,5746,
            721,2900,113,5322,5131,1,6952,1,1,6899,
            1,5322,5131,2865,7197,2980,3001,3497,7246,7323,
            7324,7240,7247,7243,7219,7245,7244,7241,7242,7220,
            379,6560,6557,4415,864,365,641,365,2680,3227,
            7487,6952,6902,6902,263,6902,263,263,263,263,
            263,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,10736,1,
            1,1,1,1,1,6952,6560,6557,6952,6990,
            263,333,6966,6967,142,570,5322,5131,6952,6952,
            1512,6952,1,5769,1,2495,1,1,6899,1,
            5792,397,2865,7197,2980,382,3497,7246,7323,7324,
            7240,7247,7243,7219,7245,7244,7241,7242,7220,379,
            39,39,4433,6990,365,6952,365,6952,6952,7487,
            6952,6902,6902,263,6902,263,263,263,263,263,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,10736,1,1,
            1,1,1,1,397,1512,6952,6966,6967,263,
            4340,4366,6952,6560,6557,6964,864,1,6718,1512,
            2680,6952,1192,1,3342,1,1,6899,1,397,
            6960,2865,7197,2980,6952,3497,1,6523,6519,3360,
            864,5654,5579,5677,2680,112,6584,6611,6617,6590,
            6593,6605,6602,6608,6599,6596,6587,6614,7487,1,
            6523,6519,6861,6516,6952,6864,150,6745,6962,2534,
            5631,5608,5723,5700,6971,6963,1266,979,1297,6973,
            1065,5861,1108,6974,6972,808,6968,6969,6970,474,
            6952,2999,440,6952,6959,1554,320,409,6961,6952,
            551,6855,39,39,39,6560,6557,4450,864,5654,
            5579,5677,2680,6870,1030,7251,7249,7258,7257,7253,
            7254,7252,7255,7256,7259,7250,1,6523,6519,655,
            6516,6858,641,120,2680,345,5769,119,5631,5608,
            5723,5700,6971,5792,1266,979,1297,6973,1065,5861,
            1108,6974,6972,808,6968,6969,6970,7428,3907,3867,
            37,6578,6578,1554,7271,345,6952,4633,1339,6952,
            2947,4633,1339,6554,43,6709,6709,6959,39,6560,
            6557,4450,864,5654,5579,5677,2680,6551,1030,7251,
            7249,7258,7257,7253,7254,7252,7255,7256,7259,7250,
            327,6966,6967,7422,7423,7424,126,6952,10765,10765,
            3634,148,5631,5608,5723,5700,6971,6988,1266,979,
            1297,6973,1065,5861,1108,6974,6972,808,6968,6969,
            6970,6706,100,7499,6952,6840,6837,1554,174,6560,
            6557,4450,864,5654,5579,5677,2680,6554,1030,7251,
            7249,7258,7257,7253,7254,7252,7255,7256,7259,7250,
            4028,36,6884,6881,6988,4109,6952,6952,381,99,
            6581,2065,5631,5608,5723,5700,6971,326,1266,979,
            1297,6973,1065,5861,1108,6974,6972,808,6968,6969,
            6970,6988,4946,6952,1,3974,3947,1554,6952,313,
            4082,4055,6905,6920,39,39,39,6560,6557,4450,
            864,5654,5579,5677,2680,6551,1030,7251,7249,7258,
            7257,7253,7254,7252,7255,7256,7259,7250,1512,3158,
            3003,45,6846,6846,37,6578,6578,6952,6877,6873,
            5631,5608,5723,5700,6971,10349,1266,979,1297,6973,
            1065,5861,1108,6974,6972,808,6968,6969,6970,75,
            6952,6952,955,6963,7388,1554,1,6523,6519,3360,
            864,5654,5579,5677,2680,6554,6584,6611,6617,6590,
            6593,6605,6602,6608,6599,6596,6587,6614,6843,6952,
            1,1601,3503,4433,6988,7014,7015,6952,422,6796,
            5631,5608,5723,5700,6971,147,1266,979,1297,6973,
            1065,5861,1108,6974,6972,808,6968,6969,6970,4191,
            6952,1,6952,6952,1174,1554,7450,7456,7454,128,
            6952,8,39,39,6952,6952,10222,9027,6952,6958,
            6890,37,6966,6966,6966,6966,6966,6962,6966,431,
            1512,6952,6575,422,6952,7448,7449,7479,7480,4109,
            6962,7457,6799,6966,6966,6966,6966,6966,6966,6966,
            6966,6966,6966,6966,6966,7459,2336,6961,2402,6952,
            6952,792,4235,4028,3043,7460,3089,669,700,7481,
            6961,7458,6988,6811,4082,4055,6952,6952,6365,6952,
            4544,6966,6957,1192,6890,6966,794,7470,7469,6966,
            7475,7476,7482,7473,7474,7453,7455,7477,3974,3947,
            7451,7452,7478,6952,7463,7464,7465,7461,7462,7471,
            7472,7467,7466,7468,6952,10650,10591,6952,7483,39,
            6560,6557,4450,864,5654,5579,5677,2680,6956,1030,
            7251,7249,7258,7257,7253,7254,7252,7255,7256,7259,
            7250,1,1,6219,6952,10650,10591,4466,326,1825,
            1825,6911,6911,5631,5608,5723,5700,6971,6952,1266,
            979,1297,6973,1065,5861,1108,6974,6972,808,6968,
            6969,6970,1,6523,6519,6787,6516,6733,6748,6736,
            6745,3097,6584,6611,6617,6590,6593,6605,6602,6608,
            6599,6596,6587,6614,6914,6914,1,404,3576,3576,
            6952,337,463,571,6952,6923,6730,6727,6742,6739,
            6760,7288,6724,6775,6784,6754,6778,6721,6781,6751,
            6757,6772,6769,6766,6763,7246,7323,7324,7240,7247,
            7243,7219,7245,7244,7241,7242,7220,6955,6790,6790,
            39,6560,6557,4450,864,5654,5579,5677,2680,6952,
            1030,7251,7249,7258,7257,7253,7254,7252,7255,7256,
            7259,7250,2682,6952,6038,593,6952,1415,127,6959,
            1,6952,6952,3391,5631,5608,5723,5700,6971,6962,
            1266,979,1297,6973,1065,5861,1108,6974,6972,808,
            6968,6969,6970,6952,6952,6952,4187,6324,4250,1554,
            39,6560,6557,4450,864,5654,5579,5677,2680,6961,
            1030,7251,7249,7258,7257,7253,7254,7252,7255,7256,
            7259,7250,4028,6952,3585,5032,5439,3703,6952,6952,
            6952,4466,6814,6952,5631,5608,5723,5700,6971,227,
            1266,979,1297,6973,1065,5861,1108,6974,6972,808,
            6968,6969,6970,6952,6952,1,6335,3974,3947,6952,
            2267,39,6560,6557,3360,864,5654,5579,5677,2680,
            6952,1030,7251,7249,7258,7257,7253,7254,7252,7255,
            7256,7259,7250,4109,5471,6952,6952,5932,3487,29,
            48,1,6952,4136,6967,5631,5608,5723,5700,6971,
            224,1266,979,1297,6973,1065,5861,1108,6974,6972,
            808,6968,6969,6970,6946,6952,6952,6952,4082,4055,
            1554,39,6560,6557,3360,864,5654,5579,5677,2680,
            224,1030,7251,7249,7258,7257,7253,7254,7252,7255,
            7256,7259,7250,1192,6967,461,3340,6952,6952,48,
            430,6952,7345,6966,73,5631,5608,5723,5700,6971,
            459,1266,979,1297,6973,1065,5861,1108,6974,6972,
            808,6968,6969,6970,6952,1,6952,6952,6952,483,
            1554,39,6560,6557,4450,864,5654,5579,5677,2680,
            6952,1030,7251,7249,7258,7257,7253,7254,7252,7255,
            7256,7259,7250,6966,1192,2993,484,582,6896,581,
            402,6952,1830,2626,3719,5631,5608,5723,5700,6971,
            6952,1266,979,1297,6973,1065,5861,1108,6974,6972,
            808,6968,6969,6970,6952,1,6952,4975,6952,6952,
            1554,39,6560,6557,5525,864,5654,5579,5677,2680,
            647,1030,7251,7249,7258,7257,7253,7254,7252,7255,
            7256,7259,7250,455,2,3288,6952,6952,6952,6952,
            6952,6952,4180,3496,2428,5631,5608,5723,5700,6971,
            1462,1266,979,1297,6973,1065,5861,1108,6974,6972,
            808,6968,6969,6970,39,6560,6557,4450,864,5654,
            5579,5677,2680,6952,1030,7251,7249,7258,7257,7253,
            7254,7252,7255,7256,7259,7250,35,6952,37,6952,
            1,6952,3634,6952,6952,6952,6952,6952,5631,5608,
            5723,5700,6971,3256,1266,979,1297,6973,1065,5861,
            1108,6974,6972,808,6968,6969,6970,39,6560,6557,
            3360,864,5654,5579,5677,2680,344,1030,7251,7249,
            7258,7257,7253,7254,7252,7255,7256,7259,7250,543,
            6952,6952,6952,6952,3200,6952,6952,6952,6952,6952,
            6952,5631,5608,5723,5700,6971,3337,1266,979,1297,
            6973,1065,5861,1108,6974,6972,808,6968,6969,6970,
            39,6560,6557,3360,864,5654,5579,5677,2680,541,
            1030,7251,7249,7258,7257,7253,7254,7252,7255,7256,
            7259,7250,6952,6952,5883,6952,6952,6952,6952,6952,
            6952,6952,6952,6952,5631,5608,5723,5700,6971,6085,
            1266,979,1297,6973,1065,5861,1108,6974,6972,808,
            6968,6969,6970,39,6560,6557,4450,864,5654,5579,
            5677,2680,6952,1030,7251,7249,7258,7257,7253,7254,
            7252,7255,7256,7259,7250,6952,1,6952,6952,6209,
            6952,6952,6952,1,6952,6958,4433,5631,5608,5723,
            5700,6971,375,1266,979,1297,6973,1065,5861,1108,
            6974,6972,808,6968,6969,6970,6952,6560,6557,6952,
            6990,6952,6952,6952,6952,6952,701,7251,7249,7258,
            7257,7253,7254,7252,7255,7256,7259,7250,7246,7323,
            7324,7240,7247,7243,7219,7245,7244,7241,7242,7220,
            6952,1,6952,1512,6952,6952,4720,375,6957,4782,
            589,375,4844,6952,3337,375,275,6699,6695,7385,
            6703,1442,7386,6952,7387,6952,701,6686,6692,6665,
            6668,6680,6677,6683,6674,6671,6662,6689,6641,6635,
            6632,6659,6638,6650,6629,6644,6647,6656,6653,6626,
            1,6952,6952,6952,6952,6952,6952,6952,6952,196,
            6952,6952,6952,6952,6952,6952,6966,6967,6952,7385,
            3013,1442,7386,589,7387,876,7251,7249,7258,7257,
            7253,7254,7252,7255,7256,7259,7250,7246,7323,7324,
            7240,7247,7243,7219,7245,7244,7241,7242,7220,6952,
            6952,6952,6952,6952,6952,6952,6952,6952,6952,6952,
            6952,6952,6952,6952,275,6820,6817,545,7385,6952,
            1442,7386,196,7387,876,6686,6692,6665,6668,6680,
            6677,6683,6674,6671,6662,6689,6641,6635,6632,6659,
            6638,6650,6629,6644,6647,6656,6653,6626,6952,6952,
            6952,29,422,422,6808,422,6808,422,6808,422,
            6808,6952,6952,6952,6952,6952,6952,7385,6952,1442,
            7386,572,7387,422,422,422,422,422,422,422,
            422,422,422,422,422,6952,6952,1109,6952,6952,
            6808,6952,6952,7246,7323,7324,7240,7247,7243,7219,
            7245,7244,7241,7242,7220,6542,6952,6952,6952,6952,
            6952,6808,32,423,423,6805,423,6805,423,6805,
            423,6805,6952,6808,6952,6952,6952,6952,6952,6952,
            573,6952,6952,6952,423,423,423,423,423,423,
            423,423,423,423,423,423,6952,6952,6952,6952,
            6952,6805,7246,7323,7324,7240,7247,7243,7219,7245,
            7244,7241,7242,7220,6952,6952,6952,6952,6952,6952,
            6952,6952,6805,6952,569,6952,6952,6952,6952,6952,
            6952,6952,6952,6952,6805,7251,7249,7258,7257,7253,
            7254,7252,7255,7256,7259,7250,7246,7323,7324,7240,
            7247,7243,7219,7245,7244,7241,7242,7220
        };
    };
    public final static char termAction[] = TermAction.termAction;
    @Override
    public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static char asb[] = {0,
            436,1,10,716,536,177,558,558,650,542,
            558,542,3,3,503,140,536,542,348,234,
            68,68,555,95,296,234,558,558,856,558,
            68,542,720,939,788,256,234,503,647,806,
            1046,856,856,856,856,718,1046,487,179,504,
            504,504,504,504,504,504,504,504,560,566,
            571,568,575,573,580,578,582,581,583,299,
            584,542,349,553,551,68,68,716,928,939,
            806,939,242,939,250,939,923,718,542,296,
            296,68,17,540,296,599,446,647,140,487,
            95,95,95,95,542,24,234,234,225,487,
            1006,94,788,487,560,787,787,24,503,504,
            504,504,504,504,504,504,504,504,504,504,
            504,504,504,504,504,504,504,504,503,503,
            503,503,503,503,503,503,503,503,503,503,
            504,17,349,551,1004,96,712,487,981,979,
            986,984,988,987,989,990,1003,1004,555,351,
            244,237,245,718,542,542,790,1004,720,542,
            503,140,234,234,1004,1004,1004,1004,790,234,
            504,716,884,874,873,608,946,946,718,179,
            296,94,503,234,539,541,539,234,296,568,
            568,566,566,566,573,573,573,573,571,571,
            578,575,575,581,580,582,137,583,551,551,
            689,700,700,700,700,684,718,737,504,504,
            504,504,504,504,504,504,504,503,503,503,
            503,503,503,503,503,503,503,503,503,504,
            487,351,542,805,545,742,790,806,453,542,
            790,542,17,646,1046,1046,1046,1046,542,542,
            225,234,886,888,542,788,504,95,564,190,
            234,542,541,788,503,551,550,542,504,979,
            979,979,984,981,981,987,986,988,137,989,
            647,542,351,137,245,856,792,1087,127,351,
            805,743,805,805,790,453,453,542,542,644,
            139,503,503,503,503,1046,1046,234,878,866,
            877,888,790,540,234,564,716,720,542,540,
            551,790,732,503,788,806,806,1004,856,539,
            804,129,1046,805,805,805,805,542,453,646,
            796,646,644,644,234,234,234,234,24,24,
            722,503,875,875,882,716,817,234,542,564,
            565,564,503,190,444,560,720,542,540,748,
            806,401,367,540,805,805,536,604,504,137,
            12,850,888,805,805,809,646,647,504,542,
            234,234,722,503,503,886,866,722,619,564,
            24,504,296,444,605,748,748,66,1048,340,
            1046,245,1086,367,540,805,806,718,129,504,
            504,888,858,395,810,542,647,724,722,565,
            234,296,647,748,748,400,340,66,862,718,
            1003,856,184,184,605,806,467,858,542,1046,
            234,809,542,718,718,542,724,724,647,401,
            748,605,604,234,718,542,367,401,367,1002,
            1002,794,468,718,542,24,801,542,542,542,
            1046,724,748,536,605,542,542,367,95,95,
            794,467,137,504,137,605,466,1046,1046,1046,
            468,1046,542,307,605,605,542,806,234,801,
            542,542,889,647,542,605,1003,459,1046,459,
            468,137,468,487,487,485,466,487,605,605,
            15,465,803,233,605,125,817,468,234,536,
            234,485,340,1046,234,794,803,95,184,234,
            234,632,468,15,468,605,340,503,468,465,
            1002,806,806,1038,503,466,24,605,234,539,
            468,234,605,468
        };
    };
    public final static char asb[] = Asb.asb;
    @Override
    public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static byte asr[] = {0,
            120,0,74,64,71,97,72,69,60,120,
            3,9,68,39,70,0,8,5,6,1,
            2,57,0,9,72,11,12,41,66,13,
            42,43,14,15,16,67,8,44,17,18,
            45,46,47,59,48,49,10,19,20,21,
            50,51,52,1,2,3,36,37,7,5,
            34,35,6,40,4,38,0,41,66,42,
            43,67,8,44,45,46,47,59,48,49,
            50,51,52,38,36,37,7,5,34,35,
            6,40,64,3,4,10,1,2,55,56,
            58,12,21,11,17,15,16,18,19,14,
            13,20,25,31,32,27,30,29,22,26,
            23,24,28,33,53,0,39,9,3,8,
            6,7,5,4,1,2,71,0,73,59,
            36,37,7,5,34,35,40,45,3,4,
            50,51,52,38,48,43,47,12,21,11,
            17,15,16,18,19,14,13,20,10,42,
            46,44,41,49,69,9,8,6,1,2,
            67,66,0,64,70,68,1,2,0,98,
            91,34,35,99,100,86,87,54,89,90,
            92,93,94,95,96,101,102,71,97,70,
            103,104,105,106,107,108,109,110,111,112,
            118,73,39,120,64,1,2,7,5,4,
            3,60,68,72,9,0,57,1,2,4,
            0,57,4,71,1,2,69,9,0,4,
            9,69,1,2,0,66,67,3,10,42,
            46,44,41,49,12,21,11,17,15,16,
            18,19,14,13,20,50,51,52,38,48,
            43,47,6,8,4,36,37,7,5,34,
            35,40,45,1,2,118,9,0,64,71,
            97,68,118,72,73,120,11,12,41,66,
            13,42,43,14,15,16,67,44,17,18,
            45,46,47,59,48,49,10,19,20,21,
            50,51,52,38,36,37,34,35,40,9,
            39,6,8,1,2,4,3,7,5,0,
            88,61,8,114,115,116,63,9,3,7,
            5,6,71,73,39,62,25,11,12,53,
            23,13,55,26,27,14,28,29,15,16,
            30,31,17,18,32,56,57,33,10,58,
            19,20,24,21,1,2,4,22,0,69,
            53,23,13,55,26,14,28,29,15,16,
            30,31,17,18,32,56,33,10,58,19,
            22,20,24,21,12,11,25,9,39,63,
            61,65,88,27,57,7,5,8,3,62,
            1,2,4,6,0,9,71,118,72,39,
            68,0,1,2,9,68,73,0,88,114,
            115,116,57,71,113,121,73,62,74,63,
            61,65,76,78,84,82,75,80,81,83,
            85,69,77,79,39,9,25,53,23,55,
            26,27,28,29,30,31,32,56,33,58,
            22,24,59,66,67,10,42,46,44,41,
            49,12,21,11,17,15,16,18,19,14,
            13,20,50,51,52,38,48,43,47,36,
            37,34,35,40,45,7,5,3,4,8,
            6,1,2,0,4,9,71,69,0,59,
            23,24,8,6,1,2,4,74,69,119,
            117,36,37,60,3,98,91,5,99,100,
            34,35,87,86,54,89,90,92,93,7,
            94,95,96,64,97,72,120,70,103,104,
            105,106,107,108,109,110,111,112,71,118,
            73,101,102,68,39,9,0,11,12,13,
            14,15,16,17,18,19,20,21,25,23,
            26,27,28,29,30,31,32,33,22,24,
            39,9,72,8,1,2,60,3,7,5,
            6,4,0,39,120,68,9,73,0,67,
            66,34,35,99,100,94,95,6,40,70,
            54,106,107,103,104,105,111,110,112,87,
            86,108,109,92,93,89,90,96,101,36,
            37,91,117,10,55,53,56,58,12,21,
            11,17,15,16,18,19,14,13,20,25,
            31,32,27,30,29,22,26,23,24,28,
            33,64,68,3,60,7,5,1,2,4,
            0,23,24,59,9,64,97,70,68,72,
            0,72,9,87,86,0,54,64,89,90,
            0,4,9,71,69,54,0,65,25,11,
            12,53,23,13,55,26,88,27,14,28,
            29,15,16,30,61,31,17,18,32,56,
            33,10,58,19,63,22,20,24,21,9,
            3,7,5,73,39,62,4,8,6,1,
            2,57,0,113,0,9,68,73,70,0,
            23,24,59,74,71,69,9,0,22,1,
            2,4,114,115,116,0,25,11,12,53,
            23,13,55,26,27,14,28,29,15,16,
            30,31,17,18,32,56,33,10,58,19,
            22,20,24,21,1,2,4,97,0,71,
            9,60,70,68,39,54,0,9,69,68,
            0,9,69,70,0,7,5,8,6,4,
            1,2,3,60,64,70,68,9,72,97,
            0,6,8,3,60,5,7,97,25,11,
            12,53,23,13,55,26,27,14,28,29,
            15,16,30,31,17,18,32,56,33,10,
            58,19,22,20,24,21,1,2,4,72,
            9,0,10,55,53,56,58,12,21,11,
            17,15,16,18,19,14,13,20,74,71,
            97,118,73,69,120,8,31,32,33,22,
            24,1,2,30,29,28,27,26,6,4,
            23,25,119,98,117,91,36,37,34,35,
            99,100,9,60,3,5,72,39,87,86,
            54,89,90,92,93,7,94,95,96,101,
            102,103,104,105,106,107,108,109,110,111,
            112,70,68,64,0,66,67,36,37,34,
            35,40,45,50,51,52,38,48,43,47,
            12,21,11,17,15,16,18,19,14,13,
            20,10,42,46,44,41,49,7,5,60,
            8,6,4,1,2,3,0,53,23,13,
            55,26,14,28,29,15,16,30,31,17,
            18,32,56,33,58,19,22,20,24,21,
            12,11,25,9,3,7,5,39,63,65,
            88,27,62,54,57,61,8,1,2,6,
            4,10,0
        };
    };
    public final static byte asr[] = Asr.asr;
    @Override
    public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static char nasb[] = {0,
            200,12,42,193,200,260,12,12,142,274,
            12,185,13,13,44,68,256,185,12,226,
            205,205,51,5,104,226,12,12,12,12,
            205,262,12,12,32,99,226,70,205,233,
            12,12,12,12,12,11,12,161,185,70,
            70,270,70,70,70,70,70,70,12,12,
            12,12,12,12,12,12,12,12,12,70,
            12,185,195,195,195,34,34,193,241,242,
            233,242,87,242,92,242,235,10,185,104,
            104,34,19,260,104,12,12,140,205,161,
            303,303,303,303,185,25,226,226,208,1,
            70,28,32,161,12,124,124,25,162,70,
            70,70,70,70,70,70,70,70,70,70,
            70,70,70,70,70,70,70,70,70,70,
            70,70,70,70,70,70,70,70,70,162,
            70,79,12,205,12,247,208,156,12,12,
            12,12,12,12,12,12,12,12,214,205,
            152,11,108,11,185,262,12,12,12,262,
            70,68,226,226,12,12,12,12,76,226,
            70,193,207,13,13,12,12,12,10,185,
            104,303,44,226,259,185,259,226,104,12,
            12,12,12,12,12,12,12,12,12,12,
            12,12,12,12,12,12,12,12,195,97,
            241,242,242,242,242,287,10,12,70,70,
            70,70,70,70,70,70,70,70,70,70,
            70,70,70,70,70,70,70,70,162,70,
            34,295,153,95,95,12,244,233,205,244,
            31,153,19,140,12,12,12,12,153,262,
            212,226,264,205,185,32,70,303,205,84,
            226,185,149,32,70,205,97,185,70,12,
            12,12,12,12,12,12,12,12,12,12,
            140,185,175,12,64,12,12,47,56,295,
            95,95,205,205,31,205,275,262,153,133,
            67,162,162,162,162,12,12,226,12,198,
            12,267,30,153,226,49,214,12,274,153,
            97,31,226,70,32,233,147,12,12,11,
            205,188,12,205,205,90,90,153,275,111,
            12,12,133,12,226,226,226,226,25,25,
            205,70,12,12,197,193,267,226,153,205,
            117,12,162,214,150,12,12,153,260,205,
            233,282,205,244,205,122,256,175,70,12,
            106,12,205,90,90,165,111,140,70,275,
            226,226,97,70,70,264,254,205,12,49,
            25,70,104,150,175,277,205,12,282,57,
            12,146,47,267,260,122,119,15,200,70,
            70,267,12,11,113,244,140,205,97,117,
            226,104,140,282,277,232,188,12,12,11,
            12,12,82,82,175,119,139,12,244,12,
            226,135,244,11,11,262,23,205,140,282,
            205,175,12,226,11,244,267,282,205,12,
            12,205,218,15,262,25,205,262,244,244,
            12,23,277,200,175,244,65,267,303,303,
            54,228,12,70,12,175,12,12,12,12,
            229,12,275,173,175,175,275,130,226,97,
            262,262,224,140,65,175,12,115,12,12,
            229,12,229,169,169,180,12,169,175,175,
            12,205,205,226,175,12,303,229,226,200,
            226,302,205,12,226,54,23,303,82,226,
            226,205,229,12,229,175,200,162,229,115,
            12,130,130,198,70,12,177,175,226,259,
            229,226,175,229
        };
    };
    public final static char nasb[] = Nasb.nasb;
    @Override
    public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static char nasr[] = {0,
            3,13,10,9,139,138,112,137,136,2,
            4,0,79,0,186,4,185,0,76,155,
            154,0,143,0,5,104,0,192,0,153,
            2,76,0,4,10,9,2,13,129,5,
            0,201,0,5,28,0,169,0,160,0,
            5,212,0,175,0,39,4,2,9,10,
            5,171,0,142,116,0,80,147,42,4,
            10,9,2,13,0,153,76,0,76,54,
            0,123,0,5,194,0,165,205,0,125,
            0,165,200,0,124,0,51,0,13,2,
            9,10,4,93,0,208,0,42,1,0,
            166,0,210,0,131,0,158,0,42,174,
            0,173,0,4,2,9,10,156,0,42,
            66,0,176,0,4,114,182,0,5,80,
            0,5,52,213,0,1,142,0,2,133,
            0,44,2,3,0,13,2,9,10,4,
            52,5,37,0,4,114,209,0,5,52,
            115,0,5,37,39,0,5,195,0,37,
            5,27,198,0,44,2,0,5,10,9,
            2,75,4,97,54,0,30,100,99,75,
            4,2,9,10,5,0,30,99,100,5,
            0,100,99,54,4,70,0,5,50,42,
            37,196,0,52,5,30,0,80,37,50,
            81,5,42,0,2,4,112,109,110,111,
            13,71,0,2,69,0,139,214,138,112,
            137,136,0,100,99,54,75,70,4,10,
            9,2,0,54,4,97,27,5,0,4,
            10,9,13,3,1,0,134,5,50,92,
            0,5,50,92,94,0,112,71,13,109,
            110,111,190,0,5,50,92,114,48,4,
            0,197,5,52,0
        };
    };
    public final static char nasr[] = Nasr.nasr;
    @Override
    public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static char terminalIndex[] = {0,
            113,114,2,31,10,13,9,79,115,100,
            48,52,60,68,74,75,86,87,102,105,
            107,104,54,106,47,64,66,70,73,76,
            83,89,98,11,12,7,8,112,120,14,
            55,61,67,84,88,90,94,97,99,109,
            110,111,53,19,63,91,93,101,95,1,
            77,122,103,20,46,58,78,44,121,33,
            30,118,119,96,108,49,50,56,57,59,
            69,71,72,85,92,17,18,65,21,22,
            6,23,24,25,26,27,32,4,15,16,
            28,29,34,35,36,37,38,39,40,41,
            42,43,51,80,81,82,5,117,3,123,
            62,116
        };
    };
    public final static char terminalIndex[] = TerminalIndex.terminalIndex;
    @Override
    public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static char nonterminalIndex[] = {0,
            130,135,136,0,0,134,0,0,237,243,
            133,0,143,0,132,0,0,142,148,0,
            0,149,158,159,160,161,188,151,0,126,
            162,141,163,164,165,166,131,167,128,168,
            0,129,138,137,170,169,171,185,0,0,
            195,152,172,0,173,0,0,0,0,0,
            174,175,176,0,177,180,212,0,0,155,
            194,0,0,209,213,0,145,0,214,127,
            179,0,0,0,0,0,0,183,0,0,
            0,0,125,186,0,0,210,216,217,218,
            0,220,157,0,146,0,0,215,197,198,
            199,201,227,228,182,204,206,0,207,0,
            0,219,0,0,0,0,248,0,251,0,
            252,0,147,187,189,190,191,192,196,200,
            203,0,0,222,225,0,0,0,246,0,
            247,0,0,139,140,144,0,0,154,156,
            0,178,0,193,0,0,0,202,0,205,
            211,0,0,223,224,0,0,229,232,0,
            234,236,0,240,241,242,245,0,0,249,
            124,0,150,153,0,181,0,184,0,0,
            208,221,226,0,0,230,231,233,235,0,
            238,239,244,250,253,254,0,0,0,0,
            0,0,0,0,0
        };
    };
    public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    @Override
    public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            172,324,608,627,317,332,559,575,586,597,
            372,280,294,311,344,55,305,392,430,180,
            616,502,20,33,64,84,93,98,103,143,
            208,339,350,20,467,157,286,300,530,40,
            157,382,20,635,40,230,259,1,14,27,
            74,89,119,27,361,365,448,495,524,551,
            555,645,649,653,110,7,110,410,426,439,
            460,479,543,129,129,245,439,566,582,593,
            604,220,513,69,69,169,235,238,69,254,
            275,238,238,69,369,492,499,169,69,668,
            123,355,414,454,486,472,69,355,401,190,
            117,452,657,664,657,664,78,420,150,117,
            117,264
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    @Override
    public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            18,148,5,5,148,148,5,5,5,5,
            379,148,108,148,25,61,291,398,436,186,
            80,508,25,38,38,38,72,72,108,148,
            213,31,31,25,5,162,291,114,535,51,
            165,387,622,640,45,224,224,5,18,31,
            5,72,108,31,108,108,148,257,5,5,
            5,5,5,257,666,11,114,379,379,379,
            464,483,535,133,138,249,443,570,570,570,
            570,224,517,72,72,5,5,241,243,257,
            5,278,278,243,108,5,257,5,528,5,
            126,358,417,457,489,475,547,538,404,193,
            108,108,659,659,661,661,80,422,152,215,
            200,266
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    @Override
    public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static char scopeLhs[] = {
            48,111,18,18,91,111,18,18,18,18,
            84,96,49,91,110,89,59,84,83,48,
            18,20,190,3,7,8,182,182,178,109,
            48,110,110,140,45,146,60,49,156,150,
            146,84,18,18,150,101,172,152,87,190,
            185,182,178,140,199,57,66,160,19,18,
            18,18,18,18,12,131,178,84,83,83,
            64,41,156,113,113,70,83,18,18,18,
            18,101,20,186,182,201,99,108,68,79,
            67,171,88,140,85,161,160,192,156,17,
            178,140,115,82,22,45,156,156,84,48,
            178,78,154,44,154,44,185,115,109,48,
            48,172
        };
    };
    public final static char scopeLhs[] = ScopeLhs.scopeLhs;
    @Override
    public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static byte scopeLa[] = {
            113,73,72,72,73,73,72,72,72,72,
            72,73,39,73,1,64,1,72,121,69,
            3,72,1,64,64,64,1,1,39,73,
            69,1,1,1,72,73,1,1,4,64,
            68,39,1,1,64,72,72,72,113,1,
            72,1,39,1,39,39,73,118,72,72,
            72,72,72,118,1,72,1,72,72,72,
            71,71,4,1,1,5,72,64,64,64,
            64,72,3,1,1,72,72,3,1,118,
            72,1,1,1,39,72,118,72,6,72,
            1,57,70,71,72,64,1,57,75,74,
            39,39,4,4,4,4,3,1,69,1,
            1,3
        };
    };
    public final static byte scopeLa[] = ScopeLa.scopeLa;
    @Override
    public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static char scopeStateSet[] = {
            67,136,286,286,89,136,286,286,286,286,
            77,91,67,89,136,89,69,77,77,67,
            286,286,100,215,261,261,52,52,64,136,
            67,136,136,138,111,373,69,67,103,48,
            373,77,286,286,48,146,61,24,77,100,
            28,52,64,138,22,69,31,58,286,286,
            286,286,286,286,265,6,64,77,77,77,
            119,346,103,136,136,180,77,286,286,286,
            286,146,286,28,52,196,146,148,198,142,
            198,61,203,138,77,55,58,106,103,286,
            64,138,1,77,287,111,103,103,77,67,
            64,11,108,155,108,155,28,1,136,67,
            67,61
        };
    };
    public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
    @Override
    public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static char scopeRhs[] = {0,
            338,3,59,0,126,0,337,3,113,0,
            126,180,0,127,188,74,0,224,0,198,
            166,126,10,0,136,0,166,126,10,0,
            135,0,270,127,54,124,0,20,0,309,
            127,54,57,0,20,53,0,33,132,0,
            20,53,0,0,309,127,54,57,214,0,
            20,186,0,270,127,54,132,0,191,126,
            0,141,0,226,3,308,0,308,0,2,
            0,126,0,270,127,54,131,0,191,126,
            236,0,191,126,22,236,0,191,126,332,
            22,0,128,198,166,126,0,128,0,198,
            166,126,0,134,128,0,172,0,328,127,
            172,0,127,172,0,230,128,0,166,327,
            234,0,136,0,0,0,0,135,0,0,
            0,0,326,127,164,235,0,127,0,235,
            0,129,0,0,127,0,325,127,164,269,
            0,127,0,0,44,127,0,0,150,3,
            0,127,296,295,127,74,293,172,0,295,
            127,74,293,172,0,223,0,224,0,293,
            172,0,96,0,0,223,0,224,0,211,
            96,0,0,223,0,224,0,295,127,293,
            172,0,223,0,211,0,0,223,0,242,
            127,3,0,126,0,0,0,0,0,242,
            127,3,221,0,230,3,0,219,127,0,
            216,0,146,0,176,166,126,0,10,0,
            0,0,0,225,60,0,125,0,242,127,
            3,189,0,189,0,2,0,0,126,0,
            0,0,0,0,210,3,0,209,0,254,
            127,164,38,27,0,191,126,61,63,0,
            204,128,0,128,191,126,291,63,0,191,
            126,291,63,0,191,126,70,123,61,0,
            254,127,164,264,61,0,254,127,164,264,
            238,61,0,288,289,127,164,123,322,55,
            0,288,289,127,164,322,55,0,191,126,
            287,55,0,198,191,126,287,234,0,191,
            126,287,234,0,166,126,0,93,136,0,
            285,127,149,0,285,127,172,0,159,84,
            0,317,161,319,320,3,81,0,126,179,
            0,319,320,3,81,0,128,0,126,179,
            0,159,3,75,203,80,0,126,128,0,
            203,80,0,108,2,131,126,128,0,237,
            3,75,0,210,174,0,33,169,0,174,
            0,183,33,169,0,237,3,85,0,203,
            152,237,3,83,0,62,179,0,237,3,
            83,0,126,179,62,179,0,318,127,164,
            0,159,0,225,77,0,30,179,0,159,
            102,185,0,30,177,0,148,64,167,3,
            0,167,3,0,20,161,126,0,159,102,
            162,0,30,169,0,199,3,0,126,149,
            0,226,3,0,225,60,282,0,159,60,
            0,199,3,314,67,126,0,126,0,0,
            0,0,314,67,126,0,2,145,126,0,
            0,0,0,199,3,45,0,147,0,125,
            57,166,126,0,31,147,0,93,136,31,
            147,0,227,191,126,0,146,31,147,0,
            199,3,49,0,159,3,49,0,159,3,
            64,199,54,41,0,199,54,41,0,20,
            2,131,126,0,159,3,64,199,54,44,
            0,199,54,44,0,159,3,64,199,54,
            46,0,199,54,46,0,159,3,64,199,
            54,42,0,199,54,42,0,226,3,125,
            198,166,126,10,0,125,198,166,126,10,
            0,136,2,0,126,0,226,3,124,275,
            166,126,10,0,275,166,126,10,0,135,
            2,0,126,0,226,3,135,0,226,3,
            140,0,159,60,140,0,277,0,31,0,
            31,139,0,165,0,134,0,159,3,0
        };
    };
    public final static char scopeRhs[] = ScopeRhs.scopeRhs;
    @Override
    public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            6316,6335,6324,4187,0,3056,1897,2038,1018,0,
            5234,5172,5030,4968,4906,4844,4782,4720,4658,4545,
            4480,4250,0,1544,1399,678,0,2428,647,0,
            5234,5172,2761,2629,5030,4968,4906,4844,4782,4720,
            2489,4658,4545,4480,2299,2291,0,6210,4466,5989,
            0,2626,3391,0,2641,2112,0,2063,969,0,
            745,1038,0,4218,6299,0,4218,6299,5977,6219,
            6206,5916,6136,6108,5896,6038,5234,5172,5030,4968,
            4906,4844,4782,4720,4658,4545,4480,0,4218,6299,
            5977,6219,6206,5916,6136,6108,5896,6038,0,6221,
            5370,0,2402,2336,0,721,0,2078,668,0,
            3446,3546,3673,673,3907,3867,3755,3360,2947,1078,
            2834,2768,2702,2636,2570,2504,2438,2372,2306,2240,
            2174,925,834,764,0,6221,5370,599,4680,4181,
            0,1803,996,646,627,5386,4456,5118,4415,4197,
            4433,4491,3246,0,5500,5492,5242,5180,5164,5158,
            4997,4935,5917,5904,5897,5414,4873,4815,4811,4666,
            5263,2942,5062,4659,4429,4575,3862,4256,0,4163,
            5386,6253,6051,2818,4853,4400,2816,5445,4456,4730,
            914,4729,1060,2742,0,820,0,745,5386,6051,
            1038,1060,5118,5400,2204,5883,4163,794,4415,4400,
            4197,655,5422,0,1746,1699,5500,5492,5242,1652,
            1457,5180,920,5164,5158,4997,4935,1981,1934,1887,
            1840,1793,1601,1504,5917,5904,2873,5897,5414,1409,
            1334,4873,4815,956,4811,4666,3154,3252,5263,2942,
            5062,4659,4680,4429,4575,1214,4181,3862,4256,641,
            2600,2274,900,864,1109,5118,5400,2204,5883,4163,
            794,745,5386,6051,4415,4400,4197,1038,2534,2468,
            2402,2336,1060,655,5422,5861,2947,4136,5838,1078,
            3446,2834,2768,2702,2636,2570,2504,2438,2372,2306,
            2240,2174,3546,3673,673,3907,3867,3755,4109,4082,
            4055,5815,3360,3407,3509,3638,3602,3835,3803,3721,
            4366,4340,4028,4001,3974,3947,5346,5322,5131,4633,
            1339,5792,5769,5746,925,834,764,5723,5700,5677,
            5654,5631,5608,5579,1266,3013,3298,3256,3200,3158,
            1462,1415,3102,3060,1367,2900,2127,2080,2033,1986,
            1939,1892,1845,1798,1751,1704,1657,1610,599,1554,
            1292,1512,1144,991,1219,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    @Override
    public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static char inSymb[] = {0,
            0,313,241,127,3,4,132,131,8,6,
            124,126,197,189,3,70,219,126,176,210,
            54,54,174,127,60,3,66,67,124,123,
            54,191,165,124,166,60,150,127,164,269,
            49,41,44,46,42,10,135,3,126,45,
            40,6,35,34,5,7,37,36,140,145,
            147,146,153,148,156,155,158,157,160,59,
            162,126,166,7,5,127,127,127,257,258,
            235,259,234,260,55,286,261,10,126,60,
            60,127,4,198,225,162,284,127,164,3,
            54,54,54,54,126,3,199,159,174,127,
            66,67,166,3,125,117,119,3,60,91,
            98,35,34,100,99,5,90,89,64,54,
            86,87,7,93,92,95,94,96,112,111,
            110,109,108,107,106,105,104,103,70,102,
            101,166,176,176,270,127,251,3,167,148,
            175,169,183,177,184,185,273,270,219,164,
            327,287,322,287,126,191,166,270,277,198,
            68,127,199,159,199,199,199,199,166,226,
            152,127,3,222,221,135,125,124,10,126,
            60,314,3,199,57,126,57,226,159,146,
            146,145,145,145,148,148,148,148,147,147,
            155,153,153,157,156,158,159,160,5,127,
            257,258,259,260,336,261,10,167,90,89,
            54,7,93,92,95,94,96,112,111,110,
            109,108,107,106,105,104,103,70,102,101,
            68,127,166,245,125,124,126,123,164,126,
            166,57,4,325,64,64,64,64,198,275,
            219,230,127,3,126,166,215,3,315,174,
            150,126,191,166,71,176,173,126,64,148,
            148,148,169,167,167,177,175,183,159,184,
            326,126,170,236,61,57,214,63,172,329,
            125,124,246,246,191,164,127,191,198,202,
            68,3,3,3,3,125,124,242,243,149,
            244,127,166,57,199,127,127,227,6,57,
            127,166,148,71,166,264,238,54,57,291,
            293,127,189,246,246,127,127,198,127,289,
            123,290,202,9,159,159,159,159,3,3,
            152,70,230,210,3,127,68,242,198,152,
            279,282,60,192,4,123,125,198,198,164,
            264,64,54,126,74,127,219,328,71,303,
            210,124,3,127,127,71,289,288,70,68,
            226,226,127,70,70,127,219,152,125,127,
            3,60,159,4,128,127,164,27,57,172,
            65,61,63,127,191,127,295,71,68,71,
            70,127,331,236,22,126,288,228,127,279,
            226,225,254,256,127,38,127,3,123,61,
            309,57,10,53,128,295,164,307,126,308,
            242,68,126,22,332,191,127,228,254,127,
            164,285,292,38,70,126,68,64,54,245,
            245,296,127,68,191,3,152,191,126,126,
            59,127,127,68,152,126,191,127,70,70,
            127,318,79,77,1,159,9,85,83,81,
            80,75,82,84,78,76,61,74,226,127,
            191,191,3,254,191,238,309,297,113,9,
            71,225,71,3,3,3,203,3,123,159,
            123,188,228,338,238,64,3,71,237,174,
            237,320,149,75,237,127,127,68,53,97,
            337,174,152,210,152,319,127,3,152,297,
            245,152,152,127,70,203,161,285,159,70,
            121,317,152,152
        };
    };
    public final static char inSymb[] = InSymb.inSymb;
    @Override
    public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            "[",
            "(",
            ".",
            ".*",
            "->",
            "->*",
            "++",
            "--",
            "&",
            "*",
            "+",
            "-",
            "~",
            "!",
            "/",
            "%",
            ">>",
            "<<",
            "<",
            ">",
            "<=",
            ">=",
            "==",
            "!=",
            "^",
            "|",
            "&&",
            "||",
            "?",
            ":",
            "::",
            "...",
            "=",
            "*=",
            "/=",
            "%=",
            "+=",
            "-=",
            ">>=",
            "<<=",
            "&=",
            "^=",
            "|=",
            ",",
            "$empty",
            "asm",
            "auto",
            "bool",
            "break",
            "case",
            "catch",
            "char",
            "class",
            "const",
            "const_cast",
            "continue",
            "default",
            "delete",
            "do",
            "double",
            "dynamic_cast",
            "else",
            "enum",
            "explicit",
            "export",
            "extern",
            "false",
            "float",
            "for",
            "friend",
            "goto",
            "if",
            "inline",
            "int",
            "long",
            "mutable",
            "namespace",
            "new",
            "operator",
            "private",
            "protected",
            "public",
            "register",
            "reinterpret_cast",
            "return",
            "short",
            "signed",
            "sizeof",
            "static",
            "static_cast",
            "struct",
            "switch",
            "template",
            "this",
            "throw",
            "try",
            "true",
            "typedef",
            "typeid",
            "typename",
            "union",
            "unsigned",
            "using",
            "virtual",
            "void",
            "volatile",
            "wchar_t",
            "while",
            "integer",
            "floating",
            "charconst",
            "stringlit",
            "identifier",
            "Completion",
            "EndOfCompletion",
            "Invalid",
            "RightBracket",
            "RightParen",
            "RightBrace",
            "SemiColon",
            "LeftBrace",
            "ERROR_TOKEN",
            "EOF_TOKEN",
            "no_function_declarator_start",
            "]",
            ")",
            "}",
            ";",
            "{",
            "identifier_token",
            "expression",
            "id_expression",
            "qualified_or_unqualified_name",
            "unqualified_id_name",
            "identifier_name",
            "template_id_name",
            "nested_name_specifier",
            "class_or_namespace_name",
            "nested_name_specifier_with_tem" +
            "plate",
            "class_or_namespace_name_with_t" +
            "emplate",
            "class_name",
            "postfix_expression",
            "simple_type_specifier",
            "pseudo_destructor_name",
            "type_id",
            "type_name",
            "destructor_type_name",
            "unary_expression",
            "cast_expression",
            "new_type_id",
            "expression_list",
            "type_specifier_seq",
            "new_declarator",
            "new_pointer_operators",
            "ptr_operator",
            "new_array_expressions",
            "constant_expression",
            "pm_expression",
            "multiplicative_expression",
            "additive_expression",
            "shift_expression",
            "relational_expression",
            "equality_expression",
            "and_expression",
            "exclusive_or_expression",
            "inclusive_or_expression",
            "logical_and_expression",
            "logical_or_expression",
            "assignment_expression",
            "relational_expression_inTempla" +
            "te",
            "equality_expression_inTemplate",
            "and_expression_inTemplate",
            "exclusive_or_expression_inTemp" +
            "late",
            "inclusive_or_expression_inTemp" +
            "late",
            "logical_and_expression_inTempl" +
            "ate",
            "logical_or_expression_inTempla" +
            "te",
            "assignment_expression_inTempla" +
            "te",
            "expression_list_actual",
            "statement",
            "compound_statement",
            "statement_seq",
            "condition",
            "declarator",
            "for_init_statement",
            "function_definition",
            "declaration",
            "declaration_seq",
            "declaration_specifiers",
            "simple_declaration_specifiers",
            "class_declaration_specifiers",
            "elaborated_declaration_specifi" +
            "ers",
            "enum_declaration_specifiers",
            "type_name_declaration_specifie" +
            "rs",
            "no_type_declaration_specifier",
            "cv_qualifier",
            "no_type_declaration_specifiers",
            "class_specifier",
            "elaborated_type_specifier",
            "enum_specifier",
            "type_name_specifier",
            "class_keyword",
            "enumerator_list",
            "enumerator_definition",
            "namespace_name",
            "init_declarator_list",
            "init_declarator_complete",
            "complete_declarator",
            "initializer",
            "direct_declarator",
            "ptr_operator_seq",
            "function_declarator",
            "basic_direct_declarator",
            "array_direct_declarator",
            "array_modifier",
            "abstract_declarator",
            "direct_abstract_declarator",
            "basic_direct_abstract_declarat" +
            "or",
            "array_direct_abstract_declarat" +
            "or",
            "parameter_declaration_list",
            "parameter_declaration",
            "parameter_init_declarator",
            "parameter_initializer",
            "function_body",
            "handler_seq",
            "initializer_clause",
            "initializer_seq",
            "class_head",
            "access_specifier_keyword",
            "member_declaration",
            "member_declarator_list",
            "member_declaration_list",
            "member_declarator_complete",
            "constant_initializer",
            "bit_field_declarator",
            "base_specifier_list",
            "base_specifier",
            "conversion_function_id",
            "conversion_type_id",
            "conversion_declarator",
            "mem_initializer_list",
            "mem_initializer",
            "mem_initializer_name",
            "operator_id_name",
            "overloadable_operator",
            "template_parameter_list",
            "template_parameter",
            "template_argument_list",
            "template_argument",
            "type_name_specifier_inTemplate",
            "type_name_declaration_specifie" +
            "rs_inTemplate",
            "type_specifier_seq_inTemplate",
            "handler",
            "exception_declaration",
            "type_id_list"
        };
    };
    public final static String name[] = Name.name;
    public final String name(int index) { return name[index]; }

    public final static int
           ERROR_SYMBOL      = 62,
           SCOPE_UBOUND      = 121,
           SCOPE_SIZE        = 122,
           MAX_NAME_LENGTH   = 43;

    public final int getErrorSymbol() { return ERROR_SYMBOL; }
    public final int getScopeUbound() { return SCOPE_UBOUND; }
    public final int getScopeSize() { return SCOPE_SIZE; }
    public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int
           NUM_STATES        = 604,
           NT_OFFSET         = 122,
           LA_STATE_OFFSET   = 7550,
           MAX_LA            = 2147483647,
           NUM_RULES         = 598,
           NUM_NONTERMINALS  = 225,
           NUM_SYMBOLS       = 347,
           SEGMENT_SIZE      = 8192,
           START_STATE       = 5422,
           IDENTIFIER_SYMBOL = 0,
           EOFT_SYMBOL       = 120,
           EOLT_SYMBOL       = 120,
           ACCEPT_ACTION     = 6515,
           ERROR_ACTION      = 6952;

    public final static boolean BACKTRACK = true;

    public final int getNumStates() { return NUM_STATES; }
    public final int getNtOffset() { return NT_OFFSET; }
    public final int getLaStateOffset() { return LA_STATE_OFFSET; }
    public final int getMaxLa() { return MAX_LA; }
    public final int getNumRules() { return NUM_RULES; }
    public final int getNumNonterminals() { return NUM_NONTERMINALS; }
    public final int getNumSymbols() { return NUM_SYMBOLS; }
    public final int getSegmentSize() { return SEGMENT_SIZE; }
    public final int getStartState() { return START_STATE; }
    public final int getStartSymbol() { return lhs[0]; }
    public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
    public final int getEoftSymbol() { return EOFT_SYMBOL; }
    public final int getEoltSymbol() { return EOLT_SYMBOL; }
    public final int getAcceptAction() { return ACCEPT_ACTION; }
    public final int getErrorAction() { return ERROR_ACTION; }
    public final boolean isValidForParser() { return isValidForParser; }
    public final boolean getBacktrack() { return BACKTRACK; }

    public final int originalState(int state) {
        return -baseCheck[state];
    }
    public final int asi(int state) {
        return asb[originalState(state)];
    }
    public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
